你的朋友 Eliud 从她的奶奶 Tigist 那里继承了一座农场。 她的奶奶是一位发明家,总爱把事情造得过分复杂。 鸡舍里有一块数字显示屏,上面显示一个编码后的数字,代表所有可以捡到的鸡蛋的位置。
Eliud 想请你写一个程序,显示鸡舍里鸡蛋的实际数量。
位置信息的编码方式如下:
1,空位标0。 _ _ _ _ _ _ _
|E| |E|E| | |E|
_ _ _ _ _ _ _
|1|0|1|1|0|0|1|
89
4
_ _ _ _ _ _ _
| | | |E| | | |
_ _ _ _ _ _ _
|0|0|0|1|0|0|0|
8
1
你的任务是统计一个数字的二进制表示中 1 的个数。
不要使用标准库提供的位计数功能!请改用其他基础工具自己解决。
PHP 中有位运算符。
例如,可以用“按位与”运算符(&)来检查某个数字的某一位是否已置位:
$number = 89; // 0b01011001
$mask16 = 16; // 0b00010000
$mask32 = 32; // 0b00100000
$isMask16 = ($number & $mask16) > 0; // 0b00010000 > 0 => TRUE
$isMask32 = ($number & $mask32) > 0; // 0b00000000 > 0 => FALSE