用c++写一个其他进制数转换为10进制数
时间: 2024-05-09 16:19:57 浏览: 88
输入一个十进制数输出它对应的八进制数。-C++面向对象程序设计
以下是将八进制数转换为十进制数的C代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int octal, decimal = 0, i = 0;
printf("Enter an octal number: ");
scanf("%d", &octal);
while (octal != 0) {
decimal += (octal % 10) * pow(8, i);
++i;
octal /= 10;
}
printf("Decimal number is: %d", decimal);
return 0;
}
```
解释:
1. 首先定义了三个变量,`octal` 用于存储输入的八进制数,`decimal` 用于存储转换后的十进制数,`i` 用于记录当前位数。
2. 通过 `scanf` 函数获取用户输入的八进制数。
3. 使用循环进行八进制数转十进制数的操作。每次循环,将输入的八进制数的最后一位取出来,乘上对应的权值(8的i次方),并加到 `decimal` 变量中。然后将 `i` 增加 1,将输入的八进制数除以 10,继续下一次循环。
4. 循环结束后,打印出转换后的十进制数。
需要注意的是,这里使用了 `pow` 函数来计算权值,这个函数需要包含 `math.h` 头文件。此外,如果输入的八进制数中含有非法字符,程序可能会出现异常。
阅读全文