c语言代码16进制转换为十进制计算
时间: 2025-01-01 08:38:26 浏览: 12
在C语言中,将十六进制数转换为十进制可以使用`atoi()`函数,但这个函数默认处理的是字符串,所以需要先将十六进制字符串转换成对应的字符数组。这里有一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// 十六进制转十进制的辅助函数
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;
}
return -1; // 非法字符处理
}
int main() {
char hex_str[] = "FF"; // 你要转换的十六进制字符串
int len = strlen(hex_str);
int decimal_value = 0;
for(int i=0; i<len; i++) {
decimal_value *= 16; // 每次左移4位
decimal_value += hex_to_dec(hex_str[i]);
}
printf("Hexadecimal %s is equivalent to decimal %d.\n", hex_str, decimal_value);
return 0;
}
```
在这个代码里,`hex_to_dec()`函数逐个处理十六进制字符串中的字符,并根据字符的ASCII码值将其转换为对应的十进制数值。
阅读全文