T' H 2021-11-13 22:53 采纳率: 100%
浏览 1362
已结题

C语言 二进制数转为十进制

编写一个程序来读取二进制数的字节作为字符串。然后将其转换为相应的十进制数并输出。
例:如果输入是10000000,那么输出是128;输入00000001,输出为1。
要求:
1)假设所有都是非负数,即第一个位不是符号。如果输入的位数小于8,则在左边加0,使字符串有8位;
2)如果输入的位数大于8位,只使用前8位,将其余的去掉。

  • 写回答

3条回答 默认 最新

  • 关注

    代码如下:

    #include <stdio.h>
    int main()
    {
        int s = 0;
        int i=0;
        char buf[60]={0};
        printf("请输入二进制字符串:");
        scanf("%s",buf); //读取二进制字符串
        while(buf[i] != '\0')
        {
            s = s *2 + buf[i]-'0';
            i++;
            if(i==8) break;
        }
        printf("%d",s);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月21日
  • 已采纳回答 11月13日
  • 创建了问题 11月13日