C:将二进制转换为十进制

Pav*_*mar 1 c

是否有用于将二进制值转换为十进制值的专用函数.例如(1111至15),(0011至3).

提前致谢

Eli*_*sky 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;
}
Run Code Online (Sandbox Code Playgroud)

这正确地解析并打印整数25(11001二进制).错误处理strtol允许注意当字符串的某些部分无法解析为所需基数中的整数时.您可以通过阅读我上面链接的参考资料来了解更多相关信息.