用C语言实现十六进制转十进制
时间: 2023-11-04 17:06:05 浏览: 86
以下是一个简单的C程序,用于将十六进制数转换为十进制数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char hex[20];
int dec = 0, base = 1, len, i;
printf("Enter a hexadecimal number: ");
fgets(hex, 20, stdin);
len = strlen(hex) - 1; //去除换行符
for (i = len - 1; i >= 0; i--)
{
if (hex[i] >= '0' && hex[i] <= '9')
{
dec += (hex[i] - '0') * base;
base *= 16;
}
else if (hex[i] >= 'A' && hex[i] <= 'F')
{
dec += (hex[i] - 'A' + 10) * base;
base *= 16;
}
else if (hex[i] >= 'a' && hex[i] <= 'f')
{
dec += (hex[i] - 'a' + 10) * base;
base *= 16;
}
}
printf("Decimal equivalent is: %d\n", dec);
return 0;
}
```
程序首先提示用户输入一个十六进制数,然后使用fgets函数读取用户输入的字符串。然后,程序使用一个循环来遍历字符串中的每个字符,并将其转换为十进制数。如果字符是数字(0-9),则将其转换为相应的十进制数。如果字符是字母(A-F或a-f),则将其转换为相应的十六进制数,并将其添加到总和中。最后,程序输出转换后的十进制数。
阅读全文