使用php怎么统计二进制中1的个数

  介绍

今天就跟大家聊聊有关使用php怎么统计二进制中1的个数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强>问题

输入一个十进制整数、输出该数二进制表示中1的个数。其中负数用补码表示。

<强>解决思路

这是个位运算的题目。
解法一:可以通过按位与操作,通过将每一位和1与操作来求出1的个数。
解法二(最优解):一个巧妙的方法,一个不为0的二进制数,肯定至少有一位是1,当这个数减一的时候,它的最后一位1会变为0,后边的所有0会变为1。比如10100年减一之后会变为10011年,然后用原数字10100年和10011年进行与操作之后,会得到10000年,也就是通过这个操作,可以将一个1变为0,所以一个二进制数字能进行多少次这样的操作,就有多少个1。

<>强实现代码

//解法一   function  NumberOf1 (n)美元   {   ,count 美元;=,0;   时间=美元才能flag  1;   while 才能;(flag 美元;!=,0),{   ,,if  (($ n ,,美元标志),!=,0),{   ,,,美元计数+ +;   ,,}   ,,flag 美元;=,flag 美元;& lt; & lt;, 1;   ,,}   return 才能;美元计数;   } //,解法二   function  NumberOf1 (n)美元   {   ,count 美元;=,0;   ,如果($ n  & lt;, 0){//大敌;处理负数   ,,n 美元;=,n&美元;0 x7fffffff;   ,,+ + $计数;   ,}   ,而(n 美元;!=,0){   美元才能数+ +;   时间=美元才能n  n 美元;,,($ n - 1);   ,}   ,return 美元计数;   } //测试   num=45美元;   echo  num !”美元的二进制是“.decbin (num美元)!”& lt; br/在“;   echo  num美元霸主地位;共有“.NumberOf1 (num美元)干净个1“;

运行结果:

使用php怎么统计二进制中1的个数

看完上述内容,你们对使用php怎么统计二进制中1的个数有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

使用php怎么统计二进制中1的个数