C++程式:將二進位制數轉換為八進位制數,反之亦然
在計算機系統中,二進位制數以二進位制數製表示,而八進位制數以八進位制數製表示。二進位制數以2為基數,而八進位制數以8為基數。
以下是二進位制數及其對應的八進位制數的示例:
二進位制數 | 八進位制數 |
---|---|
01010 | 12 |
00111 | 7 |
11001 | 31 |
10000 | 20 |
下面給出了一個將二進位制數轉換為八進位制數和將八進位制數轉換為二進位制數的程式:
示例
#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()。
BinaryToOctal() 將給定的二進位制數轉換為八進位制數。這是透過首先將二進位制數轉換為十進位制數,然後將十進位制數轉換為八進位制數來實現的。這在以下程式碼片段中可以看到:
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() 將給定的八進位制數轉換為二進位制數。這是透過首先將八進位制數轉換為十進位制數,然後將十進位制數轉換為二進位制數來實現的。這在以下程式碼片段中可以看到:
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() 函式中,給出了二進位制數和八進位制數。然後,透過分別呼叫 BinaryToOctal() 和 OctalToBinary() 計算它們對應的八進位制數和二進位制數。如下所示:
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; }
廣告