Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để chuyển đổi số nhị phân thành số bát phân và ngược lại


Trong hệ thống máy tính, số nhị phân được biểu thị trong hệ thống chữ số nhị phân trong khi số bát phân ở trong hệ thống chữ số bát phân. Số nhị phân ở cơ số 2 trong khi số bát phân ở cơ số 8.

Ví dụ về số nhị phân và số bát phân tương ứng của chúng như sau -

Số nhị phân Số bát phân
01010 12
00111 7
11001 31
10000 20

Một chương trình chuyển đổi các số nhị phân thành bát phân và các số bát phân thành nhị phân được đưa ra như sau -

Ví dụ

#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;
}

Đầu ra

Kết quả của chương trình trên như sau -

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

Trong chương trình trên, có hai hàm BinaryToOctal () và OctalToBinary ().

BinaryToOctal () chuyển đổi số nhị phân đã cho thành số bát phân. Điều này được thực hiện bằng cách đầu tiên chuyển đổi số nhị phân thành số thập phân và sau đó chuyển đổi số thập phân thành số bát phân. Điều này được thấy trong đoạn mã sau -

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 () chuyển đổi số bát phân đã cho thành số nhị phân Việc này được thực hiện bằng cách đầu tiên chuyển đổi số bát phân thành số thập phân và sau đó chuyển đổi số thập phân thành số nhị phân. Điều này được thấy trong đoạn mã sau -

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;
}

Trong hàm main (), số nhị phân và số bát phân được đưa ra. Sau đó, các số bát phân và nhị phân tương ứng của chúng được tính bằng cách gọi BinaryToOctal () và OctalToBinary () tương ứng. Điều này được hiển thị bên dưới -

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;
}