c语言十六进制转换十进制
时间: 2023-07-09 15:48:27 浏览: 138
c++ 十六进制转换十进制
4星 · 用户满意度95%
在C语言中,可以使用`strtol()`函数将十六进制字符串转换为十进制数。
例如,将字符串"0x1A"转换为十进制数:
```c
#include <stdlib.h>
#include <stdio.h>
int main() {
char hexStr[] = "0x1A";
char *endptr;
long int decimal = strtol(hexStr, &endptr, 16);
if (*endptr != '\0') {
printf("Invalid hexadecimal string!\n");
} else {
printf("The decimal value is %ld\n", decimal);
}
return 0;
}
```
输出结果为:
```
The decimal value is 26
```
其中`strtol()`函数的第一个参数是要转换的字符串,第二个参数是一个指向指针的指针,它将指向未转换的字符串中第一个无法转换为数字的字符的位置。第三个参数表示字符串中数字的基数,这里设为16表示十六进制。如果转换成功,`strtol()`函数将返回转换后的十进制数。
阅读全文