编写C语言程序,以字符形式输入一个十六进制数,将其变换为一个十进制整数后输出。
时间: 2024-03-20 21:43:04 浏览: 77
C++实现十六进制字符串转换为十进制整数的方法
好的,以下是实现该功能的C语言代码:
```
#include <stdio.h>
int main() {
char hex[10];
int dec = 0;
int i = 0;
printf("请输入一个十六进制数:");
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;
} else {
printf("输入不合法!");
return 0;
}
dec = dec * 16 + temp;
i++;
}
printf("该十六进制数的十进制值为:%d", dec);
return 0;
}
```
代码说明:
1. 首先定义一个字符串 `hex` 存储输入的十六进制数,以及一个整数 `dec` 存储转换后的十进制数,以及一个变量 `i` 用于遍历字符串。
2. 使用 `scanf` 函数接收用户输入的十六进制数,存储在 `hex` 中。
3. 使用 `while` 循环遍历字符串 `hex`,并将十六进制字符转换为对应的十进制数,存储在 `dec` 中。在转换的过程中,需要判断输入是否合法,即是否为十六进制数的字符。
4. 循环结束后,输出转换后的十进制数 `dec`。
阅读全文