如何将一个C进制数转换为对应的C语言中的十进制表示(用C进制表示)?
时间: 2024-11-09 12:20:05 浏览: 21
在C语言中,你可以通过循环结构和乘法运算来将一个C进制数(通常作为字符串形式输入)转换成对应的十进制数值。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
int celsius_to_decimal(char *celsius) {
int decimal = 0;
int base = 1; // 因为我们从右到左计算,所以每次乘以base=10^i
for (int i = strlen(celsius) - 1; i >= 0; i--) {
if (celsius[i] >= '0' && celsius[i] <= '9') {
decimal += (celsius[i] - '0') * base;
} else if (celsius[i] >= 'A' && celsius[i] <= 'Z') { // 处理大写字母'A'代表10,'B'代表11等
decimal += (celsius[i] - 'A' + 10) * base;
} else if (celsius[i] >= 'a' && celsius[i] <= 'z') {
decimal += (celsius[i] - 'a' + 10) * base;
} else {
printf("Invalid input: Non-digit character found.\n");
return -1; // 或者抛出错误
}
base *= 10; // 移位下一位置
}
return decimal;
}
int main() {
char celsius_string[] = "1F"; // 示例C进制数
int decimal_value = celsius_to_decimal(celsius_string);
if (decimal_value != -1) {
printf("The decimal equivalent is: %d\n", decimal_value);
}
return 0;
}
```
在这个例子中,我们遍历输入的字符串,依次将其转换为相应的十进制值,并累加到最终结果`decimal`上。
阅读全文
相关推荐


















