懒大王hhh 2022-11-10 19:10 采纳率: 50%
浏览 45

如何使用二分查找的思想将十进制数转换为二进制数

/*用C语言编写一个程序,将字符串形式输入的二进制整数转换为对应的十进制数,

  • 然后用二分查找法的思想将这个十进制数转换为对应的二进制数并输出。

  • 并说明计算机系统执行该程序的过程。

  • (提示:假如需要转换的十进制数是77,

  • 则需要在0-127的区间中查找77,查找过程中可以通过对77和区间中间数的比较

  • 结果确定对应的二进制数的最高位的值和下一次查找的区间范围,以此类推。)
    以下是我自己写的代码,但是并没有用二分查找的思想,有没有懂的可以教教我怎么使用二分查找思想做这个
    #include <stdio.h>
    #include<string.h>
    #include<math.h>
    int ZH(int a,int*b)
    {
    int i=0;
    while(1)
    {

     b[i]=a%2;
     a=a/2;
     if(a==0)
         break;
     else
     {
         ++i;
         continue;
     }
    

    }
    return i;
    }
    int main() {
    char a[100];
    int b[100];
    int sum,i,n;
    sum=0;
    gets(a);
    n=strlen(a);
    for(i=0;i<n;i++)
    {

     b[n-1-i]=(int)a[i]-48;
     sum=sum+b[n-1-i]*pow(2.0,(double)(n-1-i));
    

    }
    /sum的值即为十进制数的值/
    int c,d[1000],p;
    c=(int)sum;
    p=ZH(c,d);
    for(int j=p; j>=0; --j) {

     printf("%d", b[j]);
    

    }

return 0;

}

  • 写回答

3条回答 默认 最新

  • jiminwithme 2022-11-10 19:21
    关注

    会写了吗?可以分享分享吗

    评论

报告相同问题?

问题事件

  • 创建了问题 11月10日

悬赏问题

  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物