用c语言写一个自定义函数,将16进制转化为10进制输出。
时间: 2024-10-16 10:15:48 浏览: 38
16进制数据与浮点型数据转换——c语言程序
在C语言中,你可以通过创建一个函数来实现十六进制数到十进制的转换。这里是一个简单的示例,它使用`strtol()`函数,该函数可以将字符串解析成整数,包括十六进制形式:
```c
#include <stdio.h>
#include <stdlib.h>
// 自定义函数将十六进制字符串转换为十进制整数
int hex_to_decimal(const char *hex_string) {
long int decimal_value;
// 检查输入是否为空或仅包含非数字字符
if (hex_string == NULL || !isxdigit(*hex_string)) {
printf("Invalid hexadecimal number.\n");
return -1; // 返回错误码
}
// 使用strtol函数进行转换
decimal_value = strtol(hex_string, NULL, 16); // 16表示十六进制
if (decimal_value == LONG_MIN || decimal_value == LONG_MAX) { // 如果溢出
printf("Conversion to decimal failed due to overflow.\n");
return -1;
}
// 输出转换后的值
printf("Decimal representation: %ld\n", decimal_value);
return decimal_value;
}
int main() {
const char *hex_input = "FF"; // 十六进制示例
hex_to_decimal(hex_input);
return 0;
}
```
当你运行这个程序并传入一个十六进制字符串(如"FF"),它会输出相应的十进制数值。
阅读全文