是否有用于将二进制值转换为十进制值的专用函数。 例如(1111至15),(0011至3)。
先谢谢
答案 0 :(得分:6)
是的,strtol函数有一个base
参数可用于此目的。
以下是一些基本错误处理的示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char* input = "11001";
char* endptr;
int val = strtol(input, &endptr, 2);
if (*endptr == '\0')
{
printf("Got only the integer: %d\n", val);
}
else
{
printf("Got an integer %d\n", val);
printf("Leftover: %s\n", endptr);
}
return 0;
}
这正确地解析并打印整数25(二进制为11001
)。 strtol
的错误处理允许注意当字符串的某些部分无法解析为所需基数中的整数时。您可以通过阅读我上面链接的参考资料来了解更多相关信息。
答案 1 :(得分:1)