yukangliu
2015-08-21 04:12
采纳率: 66.7%
浏览 1.9k

请问我设置的32位二进制输出,但最后为什么会多出一个0呢?

图片

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 纵横车 2015-08-21 04:31
    已采纳

    只发现最后会多输出一个空格,空格后面那个0是不是在主函数里输出的?

    已采纳该答案
    打赏 评论
  • zerup 2015-08-21 04:23

    贴一下完整代码看看!

    打赏 评论
  • havedream_one 2015-08-21 04:43

    目测不在这个函数里面。可以只运行一次这个函数看看

    打赏 评论
  • yukangliu 2015-08-21 04:46

    #include
    #include
    using namespace std;

    int bit[32];
    int i;
    int Bit(unsigned int n)
    {
    for(i=0;i {
    bit[i]=n%2;
    n/=2;
    }
    for(i=31;i>=0;)
    {
    cout< if((i+1)%4==0)
    {
    cout }
    }
    }
    int main()
    {
    unsigned int n;
    int count=0;
    cin>>n;
    while(n)
    {
    cout<<"第"<<count+1<<"次"<<endl;
    count++;
    cout<<n<<"&"<<n-1<<endl;
    cout<<Bit(n)<<endl;
    cout<<Bit(n-1)<<endl;
    n=n&(n-1);
    cout<<"*******************************************"<<endl;
    cout<<Bit(n)<<endl;
    }
    cout<<"\n总共"<<count<<"次运算"<<endl;
    }

    打赏 评论
  • 纵横车 2015-08-21 05:09

    cout<<Bit(n)<<endl;这一句,Bit()返回了一个0然后被你在主函数里输出了,这就是那最后的0。

    打赏 评论

相关推荐 更多相似问题