十进制转二进制后去掉前导零(且只能通过& | ^ 移位)

题目来源及自己的思路

例如: 8=0000000000000000000000000000001000

       只要1000   且且只能通过& | ^ 移位运算### 题目描述

相关代码

#include <iostream>using namespace std;
{        int y;        cin >> y;    for (int i = sizeof(y) * 8 - 1; i >= 0; i--)
        {            bool status = (y >> i) & 1;            cout << status;
        }cout << endl;bool start = false;        for (int i = sizeof(y) * 8 - 1; i >= 0; i--)
        {            bool status = (y >> i) & 1;            if (status && !start) 
                start = true;            if (start) 
                cout << status;
        }
    }

你期待的结果是什么?实际看到的错误信息又是什么?

数出到1后1 后面的零没有了 而且还多了一个零


慕的地8271018
浏览 816回答 1
1回答

慕标5832272

先找出第一个1,记住位置,然后从这个位置走到最后,每次通过1左移对应的位置去&一下,决定输出0还是1
打开App,查看更多内容
随时随地看视频慕课网APP