繁体   English   中英

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

[英]C : converting binary to decimal

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

提前致谢

是的, 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的错误处理允许在无法将字符串的某些部分解析为所需基数中的整数时发出通知。 您想通过阅读上面链接到的参考文献来了解更多信息。

使用strtol对其进行解析,然后使用printf函数之一将其转换为字符串。 例如

char binary[] = "111";
long l = strtol(binary, 0, 2);
char *s = malloc(sizeof binary);
sprintf(s, "%ld\n", l);

这会分配比所需更多的空间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM