题目来源及自己的思路
例如: 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 后面的零没有了 而且还多了一个零
先找出第一个1,记住位置,然后从这个位置走到最后,每次通过1左移对应的位置去&一下,决定输出0还是1