编写c函数,将输入的十六进制整数转化为对应十进制整数并输出。
时间: 2025-02-10 08:12:53 浏览: 47
在C语言中,可以编写一个函数来实现十六进制数到十进制数的转换。这里我们采用位操作的方式来进行转换,因为这是处理数值的一种有效方法。下面是一个简单的函数示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
int hex_to_decimal(char hex_string[]);
// 十六进制转十进制的主函数
int hex_to_decimal(char hex_string[]) {
int decimal = 0;
int len = strlen(hex_string);
bool is_negative = false; // 标记是否为负数
if (hex_string[0] == '-') { // 如果字符串开头是负号
is_negative = true;
hex_string++; // 跳过负号
}
for (int i = 0; i < len; i++) {
if (hex_string[i] >= '0' && hex_string[i] <= '9') { // 非字母字符
decimal = decimal * 16 + (hex_string[i] - '0');
} else if (hex_string[i] >= 'A' && hex_string[i] <= 'F') { // 大写字母(A-F)
decimal = decimal * 16 + (hex_string[i] - 'A' + 10);
} else if (hex_string[i] >= 'a' && hex_string[i] <= 'f') { // 小写字母(a-f)
decimal = decimal * 16 + (hex_string[i] - 'a' + 10);
} else {
printf("Invalid hexadecimal digit at index %d\n", i);
return -1; // 非法十六进制字符
}
}
// 对于负数,需要取反后再加一
if (is_negative) {
decimal = ~decimal + 1;
}
printf("The decimal representation of the hexadecimal number is: %d\n", decimal);
return decimal;
}
int main() {
char hex_num[] = "FF"; // 示例十六进制数
hex_to_decimal(hex_num);
return 0;
}
```
阅读全文
相关推荐


















