strtol 可以把其他进制转为 10 进制吗
时间: 2024-02-03 21:02:45 浏览: 109
二进制转10进制
是的,`strtol` 函数可以将其他进制的字符串转换为 10 进制的长整型数。
在调用 `strtol` 函数时,可以通过第三个参数 `base` 来指定要转换的进制数。如果 `base` 的值为 0,则表示根据字符串的前缀来自动确定进制数:
- 如果字符串以 "0x" 或 "0X" 开头,则将其解释为十六进制数。
- 如果字符串以 "0" 开头,则将其解释为八进制数。
- 否则将其解释为十进制数。
例如,将十六进制字符串 "1a" 转换为 10 进制的长整型数,可以这样调用 `strtol` 函数:
```c
char *str = "1a";
char *endptr;
long int num = strtol(str, &endptr, 16);
```
此时 `num` 的值为 26,`endptr` 的值为字符串结尾的空字符的地址。
阅读全文