十六进制怎么转为十进制,c语言代码
时间: 2024-10-21 08:07:58 浏览: 148
十六进制转换成十进制的过程是基于每个十六进制数位对应的权重。在C语言中,你可以通过循环遍历每一位,并乘以16的幂来实现这个转换。以下是一个简单的C语言函数示例:
```c
#include <stdio.h>
#include <string.h>
// 将十六进制字符串转换为整数
int hexToDecimal(const char* hexStr) {
int decimal = 0;
int power = 0;
for (int i = strlen(hexStr) - 1; i >= 0; i--) {
char digit = hexStr[i];
if (isdigit(digit)) {
decimal += digit - '0' * pow(16, power);
} else if (isalpha(digit)) { // 对于小写的a-f和大写的A-F
decimal += (digit <= 'f') ? digit - 'a' + 10 : digit - 'A' + 10 * 16;
}
power++;
}
return decimal;
}
int main() {
char hex[] = "FF"; // 示例十六进制字符串
int decimalValue = hexToDecimal(hex);
printf("Hexadecimal %s is equal to decimal %d\n", hex, decimalValue);
return 0;
}
```
在这个例子中,`hexToDecimal` 函数从右向左遍历输入的十六进制字符串,处理每一位并累加到 `decimal` 变量上。注意,这里假设输入是小写的十六进制字符,如果包含大写字母,需要额外检查。
阅读全文