c语言怎么把16进制转换为10进制
时间: 2024-11-04 19:10:23 浏览: 9
kaGgxQxST,c语言二转16进制源码,c语言程序
在C语言中,将十六进制数转换成十进制数,可以手动进行每一位的计算,也可以使用标准库函数`atoi()`或者`strtol()`处理字符串形式的十六进制数。这里简单演示手动计算的方式:
例如,假设有一个十六进制数字"0x1A",你可以这样做:
```c
#include <stdio.h>
int hex_to_dec(char hex_char) {
if (hex_char >= '0' && hex_char <= '9') {
return hex_char - '0';
} else if (hex_char >= 'a' && hex_char <= 'f') {
return hex_char - 'a' + 10;
} else if (hex_char >= 'A' && hex_char <= 'F') {
return hex_char - 'A' + 10;
}
// 如果输入非法字符,则返回错误值或其他处理方式
return -1; // 或者抛出异常等
}
int main() {
char hex[] = "1A";
int decimal = 0;
for (int i = 0; hex[i]; i++) {
decimal = decimal * 16 + hex_to_dec(hex[i]);
}
printf("Hexadecimal %s is decimal %d\n", hex, decimal);
return 0;
}
```
这个程序逐位将十六进制数转换为对应的十进制数值,并累加。
阅读全文