php实现统计二进制中1的个数算法示例 |
本文实例讲述了php实现统计二进制中1的个数算法 。分享给大家供大家参考,具体如下: 问题 输入一个十进制整数,输出该数二进制表示中1的个数 。其中负数用补码表示 。 解决思路 这是个位运算的题目 。 实现代码 //解法一 function NumberOf1($n) { $count = 0; $flag = 1; while ($flag != 0) { if (($n & $flag) != 0) { $count++; } $flag = $flag << 1; } return $count; } // 解法二 function NumberOf1($n) { $count = 0; if($n < 0){ // 处理负数 $n = $n&0x7FFFFFFF; ++$count; } while($n != 0){ $count++; $n = $n & ($n-1); } return $count; } //测试 $num=45; echo $num."的二进制是".decbin($num)."<br/>"; echo $num."共有".NumberOf1($num)."个1"; 运行结果: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结》 希望本文所述对大家PHP程序设计有所帮助 。 您可能感兴趣的文章:
|