您的位置:首页 > 编程语言 > PHP开发

PHP 输入一个整数,求该整数的二进制表达中有多少个1

2012-10-02 19:13 274 查看
<?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);
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐