计算器 HEX 转DEC c语言代码4E 20
时间: 2024-10-18 19:06:50 浏览: 42
C语言,float double数据转换成HEX
在C语言中,将十六进制数转换成十进制数可以使用标准库函数`strtol()`或者自定义算法。这里是一个简单的例子,展示了如何通过循环和ASCII值来实现HEX到DEC的转换,对于给定的十六进制字符串"4E 20"(十六进制表示的数字`4E`和空格,通常在HEX转DEC后会忽略非数字字符):
```c
#include <stdio.h>
#include <string.h>
// 将HEX字符转换成对应的DEC值
int hex_to_dec(char hex_char) {
if (hex_char >= '0' && hex_char <= '9') {
return hex_char - '0';
} else if (hex_char >= 'A' && hex_char <= 'F') {
return hex_char - 'A' + 10;
} else if (hex_char >= 'a' && hex_char <= 'f') {
return hex_char - 'a' + 10;
}
// 如果不是有效的HEX字符,则返回0(默认)
return 0;
}
// 主函数,转换整个字符串
long long hex_to_decimal(const char* hex_str) {
long long decimal = 0;
int i = 0;
while(hex_str[i]) { // 遍历字符串直到遇到空字符
char hex_char = hex_str[i];
decimal = 16 * decimal + hex_to_dec(hex_char); // 根据位权计算总和
i++;
}
return decimal;
}
int main() {
const char* hexStr = "4E 20"; // 十六进制字符串
char cleaned_hex[5]; // 删除空格并存储有效字符
strncpy(cleaned_hex, hexStr, 3);
cleaned_hex[3] = '\0'; // 设置结尾符
long long decVal = hex_to_decimal(cleaned_hex);
printf("The decimal value of %s is %lld\n", cleaned_hex, decVal);
return 0;
}
```
在这个示例中,我们首先删除了空格,然后逐个字符地转换HEX字符为DEC,并累加到结果上。
阅读全文