c语言将高低位十六进制转为十进制
时间: 2024-10-12 20:06:32 浏览: 85
在C语言中,将高低位十六进制转换为十进制通常涉及到两个步骤:首先,读取每个十六进制数(高位和低位),然后逐位相加。对于高位和低位,你需要确定它们的权重,因为十六进制每一位的值是2的幂次方,从右向左分别是16的0次方、16的1次方、16的2次方等。
例如,假设你有一个十六进制数`0xABCDEF`(这里A代表10,B代表11,C代表12,D代表13,E代表14,F代表15),你可以这样做:
```c
#include <stdio.h>
#include <string.h>
int hexToDecimal(char hex[]) {
int len = strlen(hex);
unsigned int decimal = 0;
for (int i = 0; i < len; i++) {
if ('0' <= hex[i] && hex[i] <= '9') {
decimal += hex[i] - '0';
} else if ('A' <= hex[i] && hex[i] <= 'F') {
decimal += (hex[i] - 'A' + 10) * (16**(len - 1 - i));
} else if ('a' <= hex[i] && hex[i] <= 'f') {
decimal += (hex[i] - 'a' + 10) * (16**(len - 1 - i));
}
}
return decimal;
}
int main() {
char hexNum[] = "0xABCDEF";
int decimalNum = hexToDecimal(hexNum);
printf("十六进制 %s 转换成十进制为:%d\n", hexNum, decimalNum);
return 0;
}
```
这个函数会打印出 `十六进制 0xABCDEF 转换成十进制为:437831`(注意结果取决于具体的十六进制数值)。
阅读全文
相关推荐


















