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

이진수를 8진수로 또는 그 반대로 변환하는 C++ 프로그램


컴퓨터 시스템에서 2진수는 2진수 시스템으로 표현되고 8진수는 8진수 시스템으로 표현됩니다. 2진법은 2진법이고 8진법은 8진법입니다.

2진수 및 해당 8진수의 예는 다음과 같습니다. -

2진수 8진수
01010 12
00111 7
11001 31
10000 20

2진수를 8진수로, 8진수를 2진수로 변환하는 프로그램은 다음과 같습니다. -

예시

#include <iostream>
#include <cmath>
using namespace std;
int BinarytoOctal(int binaryNum) {
   int octalNum = 0, decimalNum = 0, count = 0;

   while(binaryNum != 0) {
      decimalNum += (binaryNum%10) * pow(2,count);
      ++count;
      binaryNum/=10;
   }
   count = 1;
   while (decimalNum != 0) {
      octalNum += (decimalNum % 8) * count;
      decimalNum /= 8;
      count *= 10;
   }
   return octalNum;
}
int OctalToBinary(int octalNum) {
   int decimalNum = 0, binaryNum = 0, count = 0;
   while(octalNum != 0) {
      decimalNum += (octalNum%10) * pow(8,count);
      ++count;
      octalNum/=10;
   }
   count = 1;
   while (decimalNum != 0) {
      binaryNum += (decimalNum % 2) * count;
      decimalNum /= 2;
      count *= 10;
   }
   return binaryNum;
}
int main() {
   int binaryNum = 1011, octalNum = 25;
   cout <<"Binary to Octal"<<endl;
   cout<<"Binary number: "<<binaryNum<<endl;
   cout<<"Octal number: "<<BinarytoOctal(binaryNum)<<endl;

   cout <<"Octal to Binary"<<endl;
   cout<<"Octal number: "<<octalNum<<endl;
   cout<<"Binary number: "<<OctalToBinary(octalNum)<<endl;
   return 0;
}

출력

위 프로그램의 출력은 다음과 같습니다 -

Binary to Octal
Binary number: 1011
Octal number: 13
Octal to Binary
Octal number: 25
Binary number: 10101

위의 프로그램에는 BinaryToOctal()과 OctalToBinary() 2개의 함수가 있습니다.

BinaryToOctal()은 주어진 이진수를 8진수로 변환합니다. 이것은 먼저 2진수를 10진수로 변환한 다음 10진수를 8진수로 변환하여 수행됩니다. 이것은 다음 코드 스니펫에서 볼 수 있습니다 -

int BinaryToOctal(int binaryNum) {
   int octalNum = 0, decimalNum = 0, count = 0;
   while(binaryNum != 0) {
      decimalNum += (binaryNum%10) * pow(2,count);
      ++count;
      binaryNum/=10;
   }
   count = 1;
   while (decimalNum != 0) {
      octalNum += (decimalNum % 8) * count;
      decimalNum /= 8;
      count *= 10;
   }
   return octalNum;
}

OctalToBinary()는 주어진 8진수를 2진수로 변환합니다. 이것은 먼저 8진수를 10진수로 변환한 다음 10진수를 2진수로 변환하여 수행됩니다. 이것은 다음 코드 스니펫에서 볼 수 있습니다 -

int OctalToBinary(int octalNum) {
   int decimalNum = 0, binaryNum = 0, count = 0;

   while(octalNum != 0) {
      decimalNum += (octalNum%10) * pow(8,count);
      ++count;
      octalNum/=10;
   }
   count = 1;
   while (decimalNum != 0) {
      binaryNum += (decimalNum % 2) * count;
      decimalNum /= 2;
      count *= 10;
   }
   return binaryNum;
}

main() 함수에서 2진수와 8진수가 제공됩니다. 그런 다음 BinaryToOctal() 및 OctalToBinary()를 각각 호출하여 해당 8진수 및 2진수를 계산합니다. 이것은 아래에 표시됩니다 -

int main() {
   int binaryNum = 1011, octalNum = 25;
   cout <<"Binary to Octal"<<endl;
   cout<<"Binary number: "<<binaryNum<<endl;
   cout<<"Octal number: "<<BinarytoOctal(binaryNum)<<endl;

   cout <<"Octal to Binary"<<endl;
   cout<<"Octal number: "<<octalNum<<endl;
   cout<<"Binary number: "<<OctalToBinary(octalNum)<<endl;
   return 0;
}