判斷一個很大的位圖中有多少個1 多少個0

判斷一個整數的二進制表示中有多少個1:


下面的圖是重點


32位的整數分別與下面的數與

0101 0101 0101 0101 0101 0101 0101 0101    1010 1010 1010 1010 1010 1010 1010 1010>>1

0011 0011 0011 0011 0011 0011 0011 0011    1100 1100 1100 1100 1100 1100 1100 1100>>2

0000 1111 0000 1111 0000 1111 0000 1111    1111 0000 1111 0000 1111 0000 1111 0000>>4

0000 0000 1111 1111 0000 0000 1111 1111    1111 1111 0000 0000 1111 1111 0000 1111>>8

0000 0000 0000 0000 1111 1111 1111 1111   1111 1111 1111 1111 0000 0000 0000 0000 >>16

直到0的重複次數是位數的一半即可。

如果讓我們算8位的char中有幾個1 我們只需要做大第3行即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章