0
給定C++ 03中的32位或64位整數,確定是否只有一個位是否有效的方法是什麼? (例如,值恰恰是1,2,4,8,16,32等中的一個)。是否有任何C++ 03庫(或者如果不是C++ 11)的內置函數可以在我遇到的任何硬件上高效工作在嗎?我想用它來處理多次出現頻率較低的衰減消息。如何有效地確定一個整數的漢明權重是否恰好爲1?
給定C++ 03中的32位或64位整數,確定是否只有一個位是否有效的方法是什麼? (例如,值恰恰是1,2,4,8,16,32等中的一個)。是否有任何C++ 03庫(或者如果不是C++ 11)的內置函數可以在我遇到的任何硬件上高效工作在嗎?我想用它來處理多次出現頻率較低的衰減消息。如何有效地確定一個整數的漢明權重是否恰好爲1?
如果有已經公知的整數x
不爲零,則
if (0 == (x & (x - 1)))
{
there_is_only_1_bit = true;
}
表達式x&=(X-1)將關閉,它被設置x的最低位。 – Logicrat 2014-09-05 22:51:59