请写一段c语言,把两位十六进制数转化成十进制数
时间: 2024-04-08 18:34:30 浏览: 131
当然可以!以下是一个将两位十六进制数转换为十进制数的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int hexToDec(char hex[]) {
int dec = 0;
int power = 0;
// 逐个处理字符
for (int i = 1; i >= 0; i--) {
// 将字符转换为对应的数字
int digit;
if (hex[i] >= '0' && hex[i] <= '9') {
digit = hex[i] - '0';
}
else if (hex[i] >= 'A' && hex[i] <= 'F') {
digit = hex[i] - 'A' + 10;
}
else if (hex[i] >= 'a' && hex[i] <= 'f') {
digit = hex[i] - 'a' + 10;
}
else {
printf("输入的不是有效的十六进制数!\n");
exit(0);
}
// 计算对应位的权值并累加
dec += digit * pow(16, power);
power++;
}
return dec;
}
int main() {
char hex[3];
printf("请输入一个两位十六进制数: ");
scanf("%s", hex);
int dec = hexToDec(hex);
printf("对应的十进制数为: %d\n", dec);
return 0;
}
```
在上面的代码中,我们通过一个名为`hexToDec`的函数来完成16进制到10进制的转换。该函数接受一个长度为2的十六进制字符串作为参数,并返回对应的十进制数。
在`main`函数中,我们首先提示用户输入一个两位十六进制数,并将其存储在名为`hex`的字符数组中。然后,我们调用`hexToDec`函数将该十六进制数转换为对应的十进制数,并将结果打印出来。
请注意,上述代码假定用户输入的是有效的两位十六进制数,如果输入无效,则会输出错误信息并退出程序。
阅读全文