2. ビットを数える例題ここにいるバイナリアンの数は何人か?机 1 0 0 1 = 0x0A (ビット2個)机 1 1 1 1 = 0x0F (ビット4個)机 1 1 1 0 = 0x0E (ビット3個)机 1 1 1 1 = 0x0F (ビット4個)机 1 1 1 1 = 0x0F (ビット4個)合計 17人 4. (1) popCount 8bit If1 byte あたり 8回条件分岐して bit を数える for (int i = 0; i < n; i++) { if (*x & 0x01) c++; if (*x & 0x02) c++; if (*x & 0x04) c++; if (*x & 0x08) c++; if (*x & 0x10) c++; if (*x & 0x20) c++; if (*x & 0x40) c++; if (*x & 0x80) c++; x
![x86x64 SSE4.2 POPCNT](https://cdn-ak-scissors.b.st-hatena.com/image/square/79c45a4bd1aea511dcaceb9735e3de954ce52e37/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fx86x64-popcnt-110806033815-phpapp01-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)