C++程式:將十進位制數轉換為八進位制數


在計算機系統中,八進位制數用八進位制數製表示,而十進位制數用十進位制數製表示。八進位制數是8進位制的,而十進位制數是10進位制的。

以下是十進位制數及其對應的八進位制數的示例。

十進位制數八進位制數
810
70106
2531
77

將十進位制數轉換為八進位制數的程式如下所示。

示例

 線上演示

#include <iostream>
using namespace std;
void DecimalToOctal(int decimalNum) {
   int octalNum = 0, placeValue = 1;
   int dNo = decimalNum;
   while (decimalNum != 0) {
      octalNum += (decimalNum % 8) * placeValue;
      decimalNum /= 8;
      placeValue *= 10;
   }
   cout<<"Octal form of decimal number "<<dNo<<" is "<<octalNum<<endl;
}
int main() {
   DecimalToOctal(70);
   return 0;
}

輸出

Octal form of decimal number 70 is 106

在上面的程式中,函式`DecimalToOctal`將十進位制數轉換為八進位制數。在`DecimalToOctal`函式中,最初將變數`octalNum`初始化為零。變數`placeValue`表示數字中數字的位置。`octalNum`的值使用`while`迴圈找到。

對於`while`迴圈的每次迭代,`decimalNum`除以8,餘數乘以`placeValue`。將其新增到`octalNum`的先前值。`decimalNum`也除以8,並將商儲存回去。`placeValue`乘以10。

演示此功能的程式碼片段如下所示。

while (decimalNum != 0) {
   octalNum += (decimalNum % 8) * placeValue;
   decimalNum /= 8;
   placeValue *= 10;
}

獲得八進位制值(即`octalNum`)後,將其顯示出來。如下所示:

cout<<"Octal form of decimal number "<<dNo<<" is "<<octalNum<<endl;

`main()`函式只包含對`DecimalToOctal()`函式的呼叫,並帶有所需的值。這由以下程式碼片段演示。

DecimalToOctal(70);

更新於:2020年6月24日

1K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.