饰. 2022-03-24 20:26 采纳率: 60%
浏览 751

C语言十进制转换为八位二进制

要求输入一个小于256的十进制整数,要将其转换为一个必须有八位数字的二进制数

img

  • 写回答

2条回答 默认 最新

  • 春休夏末 2022-03-24 20:54
    关注
    
    #include <stdio.h>
     
    int binaryNum[16];  //存放转换后得到的二进制码
    int count=0//计数十进制整数被2除的次数
    int oneCount=0//得到的二进制码中1的个数
     
    void main(){
      int num;
      printf("输入一个十进制的整数:");
      scanf("%d",&num); 
         
      while( (num/2) != 1 ){  //判断条件为:除以2之后的商不等于1
        binaryNum[count] = num%2//取余后的数字存入数组
        num /= 2//num = num/2; 进行下一轮的判断
        count++;  //此变量用来指定数组下标
      }
      binaryNum[count+1] = 1//最后一次除法做完以后,剩下的商一定是1,所以在最后手动添加一个1
     
      printf("二进制数值为:");
      //倒序打印出数组中的元素
      // sizeof(整形数组)/sizeof(整形单个元素大小) = 数组的元素个数
      for( int i=sizeof(binaryNum)/sizeof(int)-1; i>=0; i-- ){
        if( binaryNum[i] == 1)
          oneCount++;  //出现一次1就累加
        printf("%d",binaryNum[i]);
      }
      printf("\n",oneCount);
    }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月24日

悬赏问题

  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译