C++ 程序将八进制数转换为二进制数
c++programmingserver side programming
在计算机系统中,二进制数以二进制数字系统表示,而八进制数以八进制数字系统表示。二进制数以 2 为基数,而八进制数以 8 为基数。
二进制数及其对应的八进制数的示例如下 −
二进制数 | 八进制数 |
---|---|
01101 | 15 |
00101 | 5 |
10110 | 26 |
01010 | 12 |
将八进制数转换为二进制的程序如下 −
示例
#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; }
In the function main(), the octal number is given. Then its corresponding binary number is calculated by calling OctalToBinary(). This is shown below −
int main() { int octalNum = 33; cout <<"Octal to Binary"<<endl; cout<<"Octal number: "<<octalNum<<endl; cout<<"Binary number: "<<OctalToBinary(octalNum)<<endl; return 0; }