C++ 程式,將八進位制數字轉換為二進位制數字


在計算機系統中,二進位制數字在二進位制數字系統中表達,而八進位制數字在八進位制數字系統中表達。二進位制數字以 2 為底數,而八進位制數字以 8 為底數。

二進位制數字及其對應的八進位制數字的示例如下 −

二進位制數字八進位制數字
0110115
001015
1011026
0101012

如下將八進位制數字轉換為二進位制數字的程式 −

示例

 試用版

#include <iostream>
#include <cmath>
using namespace std;
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 octalNum = 33;
   cout <<"Octal to Binary"<<endl;
   cout<<"Octal number: "<<octalNum<<endl;
   cout<<"Binary number: "<<OctalToBinary(octalNum)<<endl;
   return 0;
}

輸出

上述程式的輸出如下 −

Octal to Binary
Octal number: 33
Binary number: 11011

在給定的程式中,OctalToBinary() 函式將給定的八進位制數字轉換為二進位制數字。這是先將八進位制數字轉換為十進位制數字,再將十進位制數字轉換為二進位制數字。這在以下程式碼片段中可見 −

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() 函式中,給出了八進位制數字。然後透過呼叫 OctalToBinary() 計算其對應的二進位制數字。如下所示 −

int main() {
   int octalNum = 33;
   cout <<"Octal to Binary"<<endl;
   cout<<"Octal number: "<<octalNum<<endl;
   cout<<"Binary number: "<<OctalToBinary(octalNum)<<endl;
   return 0;
}

更新於: 2020 年 6 月 25 日

1 千+ 瀏覽量

開啟你的職業生涯

完成課程即可獲得認證

開始
廣告