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 千+ 浏览量

开启你的职业生涯

完成课程即可获得认证

开始
广告