16进制字符串转10进制用c语言编写一遍
时间: 2024-10-23 19:06:53 浏览: 58
javascript将16进制的字符串转换为10进制整数hex
在C语言中,我们可以使用标准库函数`atoi`来将十六进制字符串转换为十进制整数。但是需要注意的是,`atoi`只能处理ASCII格式的字符串,并且如果输入不是有效的十六进制,结果可能是不确定的。下面是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
// 将十六进制字符串转换为十进制整数
int hex_to_dec(const char *hex_str) {
long dec_num = strtol(hex_str, NULL, 16);
if (dec_num == -1) { // 检查是否转换成功
printf("Invalid hexadecimal string.\n");
return -1;
}
return (int)dec_num; // 返回转化后的十进制数,假设不会有溢出风险
}
int main() {
char hex[] = "AB"; // 十六进制的171 (A=10,B=11)
int decimal = hex_to_dec(hex);
if (decimal != -1) {
printf("%s (十六进制) 转换成十进制是 %d\n", hex, decimal);
}
return 0;
}
```
在这个程序中,`strtol`函数尝试把`hex_str`解析成十六进制,然后返回对应的十进制数值。如果输入无效,`strtol`会返回-1。
阅读全文