写一段c程序,输入一个十六进制数,输出一个十进制
时间: 2023-11-28 19:05:25 浏览: 36
这是一个简单的C程序,可以实现将十六进制数转换为十进制数的功能:
```c
#include <stdio.h>
int main() {
char hex[20];
int dec = 0;
int i = 0;
printf("请输入一个十六进制数:\n");
scanf("%s", hex);
while (hex[i] != '\0') {
int temp = 0;
if (hex[i] >= '0' && hex[i] <= '9') {
temp = hex[i] - '0';
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
temp = hex[i] - 'a' + 10;
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
temp = hex[i] - 'A' + 10;
}
dec = dec * 16 + temp;
i++;
}
printf("转换后的十进制数为:%d\n", dec);
return 0;
}
```
首先,我们定义了一个字符数组 `hex` 来存储用户输入的十六进制数,以及一个整型变量 `dec` 来存储转换后的十进制数。然后,我们使用 `scanf()` 函数来读取用户输入的十六进制数。
接着,我们使用 `while` 循环遍历整个十六进制数。在循环中,我们首先判断当前字符是数字还是字母,并将其转换为相应的数值。如果当前字符是数字,则将其值减去字符 `'0'` 的值;如果当前字符是小写字母,则将其值减去字符 `'a'` 的值再加上 10;如果当前字符是大写字母,则将其值减去字符 `'A'` 的值再加上 10。然后,我们将转换后的数值乘以 16 的幂次方,再累加到 `dec` 变量中。
最后,我们使用 `printf()` 函数将转换后的十进制数输出到屏幕上,并使用 `return` 语句结束程序的执行。