可能重複:
Best algorithm to count the number of set bits in a 32-bit integer?比較兩個二進制數和獲得有多種不同的位
我想編寫一個程序來獲得比較兩個numbers.if I 1的位號比較任意兩個數字 之間的位以找出二進制數在1和0中的不同位置。換句話說,異或(XOR)關係是 。
一樣,如果22(其具有10110二進制),並用15比較它(其具有01111二進制)
第一個10110
第二個01111
結果11001
,答案是25,但我想得到的是3,其中有三個1和0是不同的。
某些CPU有口算一種特殊的硬件指令。知道編譯器是否知道這個並可以發出相關代碼會很有趣。 – 2012-03-31 09:46:33
這叫做[Hamming Distance](http://en.wikipedia.org/wiki/Hamming_Distance)。 – Potatoswatter 2012-03-31 11:03:15
__builtin_popcount(22^15)= 3 – 2018-01-29 07:06:42