如何把十六进制转化为十进制,c语言,不用函数
时间: 2024-09-23 12:16:51 浏览: 69
C语言,实现进制转换,十进制转换为十六进制
3星 · 编辑精心推荐
在C语言中,你可以手动编写一个循环结构来将十六进制转换为十进制,这里是一个简单的示例,不使用内建的函数:
```c
#include <stdio.h>
#include <string.h>
int main() {
char hex_str[10];
printf("请输入一个十六进制数: ");
scanf("%s", hex_str);
int decimal_num = 0;
for (int i = 0; i < strlen(hex_str); i++) {
unsigned char c = hex_str[i];
// 处理空格或无效字符
if (c == ' ' || (c < '0' || c > 'F')) {
continue;
}
// 根据大小写字母计算数值
if ('A' <= c && c <= 'F') {
decimal_num = decimal_num * 16 + (c - 'A' + 10);
} else {
decimal_num = decimal_num * 16 + (c - '0');
}
}
printf("十六进制数 %s 对应的十进制数是: %d\n", hex_str, decimal_num);
return 0;
}
```
这个程序首先接收用户的输入,然后遍历每个字符,如果字符不是有效十六进制字符(如空格或其他字符),则忽略;如果是字母,则将其转换为相应的数字(10到15),如果是数字,则直接加上其对应的值。最后得到的`decimal_num`就是十进制表示。
阅读全文