C语言写一个十六进制转十进制代码
时间: 2023-10-19 22:21:56 浏览: 37
以下是一个将十六进制数转换为十进制数的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main() {
char hex[100];
long long decimal = 0, base = 1;
int i = 0, value, length;
printf("Enter a hexadecimal number: ");
scanf("%s", hex);
length = strlen(hex);
for(i = length - 1; i >= 0; i--) {
if(hex[i] >= '0' && hex[i] <= '9') {
value = hex[i] - 48;
} else if(hex[i] >= 'a' && hex[i] <= 'f') {
value = hex[i] - 97 + 10;
} else if(hex[i] >= 'A' && hex[i] <= 'F') {
value = hex[i] - 65 + 10;
} else {
printf("Invalid hexadecimal number.\n");
exit(0);
}
decimal += value * base;
base *= 16;
}
printf("The decimal value of %s is %lld\n", hex, decimal);
return 0;
}
```
这个程序首先要求用户输入一个十六进制数,然后通过迭代每个十六进制数字并将其转换为十进制数来计算其十进制值。在这个过程中,程序检查输入的数是否是有效的十六进制数字,如果不是,则程序将退出并显示错误消息。