104 2023-03-30 17:58 采纳率: 25%
浏览 31
已结题

C++十进制转化为二进制数

这个代码运行的时候为什么b%2*i无法赋值给zheng?
#include

using namespace std;

int main()

{

double a,c,xiao;

int b,zheng=0;

cin >> a;

b = (int)a;

c = a - (int)a;

while (b != 0)

{

    int i = 1;

    zheng += b % 2 *i;

    b /= 2;

    i *= 10;

}

cout << zheng << endl;

return 0;

}

  • 写回答

2条回答 默认 最新

  • tanjunming2020 2023-03-30 20:02
    关注

    要把int i=1;放在外面

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main()
    
    {
    
    double a,c,xiao;
     
    int b,zheng=0;
     
    cin >> a;
     
    b = (int)a;
     
    c = a - (int)a;
    
    int i = 1;
     
    while (b != 0)
     
    {
     
        zheng += b % 2 *i;
     
        b /= 2;
     
        i *= 10;
     
    }
     
    cout << zheng << endl;
     
    return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 3月30日