<?php
#计算某个二进制数共有几个1
#例如十进制11 = 二进制1011,则结果是3个1
#解题思路:利用 n & (n - 1) 可以将最后一个1变0
# xxxx1000 & (xxxx1000 - 1) = xxxx1000 & xxxx0111 = xxxx0000
# 1011 & (1011 - 1) = 1011 & 1010 = 1010
#直到最后一个1被与为0,得出结果
function count1($n) {
$r = 0;
while ($n != 0) {
$r++;
$n &= ($n - 1);
}
return $r;
}
echo count1(11);
?>
php实现求得一个数的二进制中1的个数
最新推荐文章于 2021-12-01 14:26:15 发布