c语言十六进制转十进制
时间: 2023-10-19 22:11:30 浏览: 102
C语言实现十六进制数据转十进制数据
在 C 语言中,可以使用 `strtol()` 函数将十六进制字符串转换为十进制数字。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex_string[] = "1A"; // 十六进制字符串
char *endptr; // 指向转换后字符串末尾的指针
long int decimal = strtol(hex_string, &endptr, 16); // 将十六进制字符串转换为十进制数值
if (endptr == hex_string) { // 如果没有转换任何字符
printf("Invalid input!\n");
} else {
printf("%s in hex = %ld in decimal\n", hex_string, decimal);
}
return 0;
}
```
运行结果:
```
1A in hex = 26 in decimal
```
其中,`strtol()` 函数的第一个参数是要转换的字符串,第二个参数是一个指向指针的指针,用于存储转换后字符串的末尾位置,第三个参数是基数,这里使用 16 表示输入的字符串是十六进制。如果转换成功,函数返回转换后的整数值。如果无法转换,则返回 0。
阅读全文