用c写一个输入十六进制数,输出相应的十进制数
时间: 2023-05-22 09:05:56 浏览: 52
当然可以。首先,我来解释一下十六进制和十进制的概念。十六进制是一种基于16的计数系统,它由0到9以及A到F这16个字符表示。十进制是我们通常使用的基于10的计数系统,由0到9这10个字符表示。接下来,我将演示如何使用C语言将十六进制转换为十进制。
```c
#include <stdio.h>
int main() {
char hex[50];
int i, decimal = 0, base = 1;
printf("请输入一个十六进制数:");
scanf("%s", hex);
for (i = strlen(hex) - 1; i >= 0; i--) {
if (hex[i] >= '0' && hex[i] <= '9') {
decimal += (hex[i] - '0') * base;
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
decimal += (hex[i] - 'a' + 10) * base;
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
decimal += (hex[i] - 'A' + 10) * base;
}
base *= 16;
}
printf("转换为十进制为:%d\n", decimal);
return 0;
}
```
这段代码会要求用户输入一个十六进制数,然后将其转换为十进制数后输出。在代码中,我们使用了一个char类型的数组来存储用户输入的十六进制数,然后使用一个for循环逆序遍历这个数组。对于每个字符,我们判断它是0到9的数字还是a到f或A到F这些字母中的一个,然后根据其对应的值计算出相应的十进制值并将其加到decimal变量中。最后,我们将base变量乘以16,以便在遍历下一个字符时正确计算出该字符对应的十进制值。