十六进制转十进制c语言代码
时间: 2023-05-08 14:00:30 浏览: 127
十六进制转十进制的过程可以通过乘以16的幂次方来实现,具体步骤如下:
1. 输入16进制数的字符串,例如"3C2A"。
2. 从字符串的右侧开始读取每一位数字(包括A~F),每读取一位就将其转换为对应的十进制数,例如,2对应的十进制数是2,A对应的十进制数是10。
3. 对于第i位数字(从1开始计数),其对应的十进制数为num_i,那么其在十进制中的值为num_i * 16^(i-1)。
4. 将所有位的值相加即可得到最终结果。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int hex_to_dec(char *hex) {
int len = strlen(hex);
int dec = 0;
for (int i = 0; i < len; i++) {
int num = hex[i] - '0'; // 将字符转换为数字
if (num > 9) {
num = num - 7; // A~F对应的数字是10~15
}
dec += num * (1 << (4 * (len - i - 1))); // 16的幂次方
}
return dec;
}
int main() {
char hex_str[] = "3C2A";
int dec = hex_to_dec(hex_str);
printf("%d\n", dec); // 输出结果:15466
return 0;
}
```
阅读全文
相关推荐


















