用c将十六进制转换十进制
时间: 2024-12-29 14:29:23 浏览: 13
在C语言中,可以使用strtol()
函数或者手动解析字符串来将十六进制数转换为十进制。这里是一个简单的示例:
#include <stdio.h>
#include <stdlib.h>
// 将十六进制字符串转换为整数
int hex_to_dec(const char *hex_str) {
int decimal = 0;
int power = 0;
while (*hex_str != '\0') {
if (isxdigit(*hex_str)) { // 检查是否为十六进制数字
int digit = todigit(*hex_str, 16); // 转换为对应的十进制数值(范围是0-15)
decimal += digit * pow(16, power);
++power; // 计算下一位的权重
}
++hex_str; // 移动到下一个字符
}
return decimal;
}
int main() {
const char* hex_num = "FF"; // 示例十六进制字符串
int decimal_num = hex_to_dec(hex_num);
printf("十六进制数 %s 对应的十进制数是:%d\n", hex_num, decimal_num);
return 0;
}
在这个例子中,strtol()
函数没有直接使用是因为它处理更复杂的情况,如包含前导零的十六进制数。这个简化版适合基本的非空十六进制字符串。
相关推荐


















