0
我已經在C++中編寫了用於查找數字中設置位的索引的代碼。找到設置位的索引時出錯的輸出 - C++
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main(int argc, char const *argv[])
{
for(ll i = 1; i < (1<<3); i++)
{
cout<<i<<" here ";
for(ll j = 0; j < 3; j++)
{
if(i&(1<<j) != 0)
cout<<j<<" ";
}
cout<<endl;
}
return 0;
}
這我得到的輸出是(這是不對的):
1 here 0 1 2
2 here
3 here 0 1 2
4 here
5 here 0 1 2
6 here
7 here 0 1 2
然而,如果我們採取i = 1
。因爲1的二進制表示是001
,所以在按位&
與010
即2時,它應該給出0
。因此,對於i = 1,只應打印0
,1 here 0
。