我想操縱64位。我用的是數量的無符號存儲長長int.To測試,我跑了下面的程序如何操縱64位?
#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;
}
的porcess但CNT的輸出爲2,這顯然是錯誤的。我如何操縱64位?更正在哪裏?其實我試圖找到一致性,也就是二進制表示的數字小於2^63。
或者簡單的'1LLU'。 – Shahbaz
是的,你是對的,這是更簡單和可讀性。 –
更好:使用強制類型轉換爲'uint64_t',實際上它確保是64位。 'unsigned long long'可以是大於8位的任何值,包括16或32位。 – cmaster