我正在尝试操作 64 位。我使用该数字存储在一个无符号的 long long int 中。为了测试进程,我运行了以下程序
#include <iostream>
using namespace std;
int main()
{
unsigned long long x = 1;
int cnt = 0;
for(int i =0 ;i<64;++i)
{
if((1<<i)&x)
++cnt;
}
cout<<cnt;
}
但是cnt的输出是2,这显然是错误的。如何操作 64 位?修正在哪里?实际上我试图找到奇偶校验,即小于 2^63 的二进制表示中 1 的数量。