Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 8진수에서 10진수로 변환하는 프로그램

<시간/>

8진수를 입력으로 하여 주어진 8진수를 10진수로 변환하는 작업입니다.

컴퓨터의 10진수는 10진수로 표시되고 8진수는 0에서 7까지의 8진수로 표시되는 반면 십진수는 0에서 9까지의 모든 숫자가 될 수 있습니다.

8진수를 10진수로 변환하려면 다음 단계를 따르십시오 -

  • 오른쪽에서 왼쪽으로 나머지를 통해 숫자를 추출한 다음 0에서 시작하는 거듭제곱을 곱하고 (자릿수) – 1이 될 때까지 1씩 증가합니다.
  • 8진법에서 2진법으로 변환해야 하므로 8진법은 밑수가 8이므로 거듭제곱의 밑은 8이 됩니다.
  • 주어진 입력의 자릿수에 밑수와 거듭제곱을 곱하고 결과를 저장합니다.
  • 곱한 값을 모두 더하여 십진수가 되는 최종 결과를 얻습니다.

다음은 8진수를 10진수로 변환한 그림입니다.

C++에서 8진수에서 10진수로 변환하는 프로그램

예시

Input-: 451
   1 will be converted to a decimal number by -: 1 X 8^0 = 1
   5 will be converted to a decimal number by -: 5 X 8^1 = 40
   4 will be converted to a decimal number by -: 4 X 8^2 = 256
Output-: total = 0 + 40 + 256 = 10

알고리즘

Start
Step 1-> declare function to convert octal to decimal
   int convert(int num)
      set int temp = num
      set int val = 0
      set int base = 1
      Set int count = temp
      Loop While (count)
         Set int digit = count % 10
         Set count = count / 10
         Set val += digit * base
         Set base = base * 8
      End
      return val
step 2-> In main()
   set int num = 45
   Call convert(num)
Stop

예시

#include <iostream>
using namespace std;
//convert octal to decimal
int convert(int num) {
   int temp = num;
   int val = 0;
   int base = 1;
   int count = temp;
   while (count) {
      int digit = count % 10;
      count = count / 10;
      val += digit * base;
      base = base * 8;
   }
   return val;
}
int main() {
   int num = 45;
   cout <<"after conversion value is "<<convert(num);
}
이후입니다.

출력

위의 코드를 실행하면 다음 출력이 생성됩니다.

after conversion value is 37