C++ 中八进制到十进制转换程序


给定八进制数作为输入,任务是将给定的八进制数转换为十进制数。

计算机中的十进制数以 10 为基数表示,而八进制数以 8 为基数表示,从数字 0 到 7 开始,而十进制数可以是 0 到 9 之间的任何数字。

若要将八进制数转换为十进制数,请执行以下步骤

  • 我们将从右到左通过余数提取数字,然后用从 0 开始并增加 1 直到(数字数)-1 的次幂乘以它
  • 由于我们需要进行八进制到二进制的转换,因此指数的基数将为 8,因为八进制有 8 个基数。
  • 将给定输入的数字与基数和次幂相乘,并存储结果
  • 将所有乘积值相加以获得最终结果,最终结果将是十进制数。

下面是将八进制数转换为十进制数的示意图。

示例

Input-: 451
   1 will be converted to a decimal number by -: 1 X 8^0 = 1
   5 will be converted to a decimal number by -: 5 X 8^1 = 40
   4 will be converted to a decimal number by -: 4 X 8^2 = 256
Output-: total = 0 + 40 + 256 = 10

算法

Start
Step 1-> declare function to convert octal to decimal
   int convert(int num)
      set int temp = num
      set int val = 0
      set int base = 1
      Set int count = temp
      Loop While (count)
         Set int digit = count % 10
         Set count = count / 10
         Set val += digit * base
         Set base = base * 8
      End
      return val
step 2-> In main()
   set int num = 45
   Call convert(num)
Stop

示例

 现场演示

#include <iostream>
using namespace std;
//convert octal to decimal
int convert(int num) {
   int temp = num;
   int val = 0;
   int base = 1;
   int count = temp;
   while (count) {
      int digit = count % 10;
      count = count / 10;
      val += digit * base;
      base = base * 8;
   }
   return val;
}
int main() {
   int num = 45;
   cout <<"after conversion value is "<<convert(num);
}

输出

如果我们运行以上代码,它会生成以下输出

after conversion value is 37

更新时间:18-Oct-2019

167 次查看

开启你的职业生涯

完成课程获得认证

开始
广告