Home >Backend Development >PHP Tutorial >How to count binary algorithms in php

How to count binary algorithms in php

php中世界最好的语言
php中世界最好的语言Original
2018-04-11 10:19:442022browse

This time I will show you how to count binary algorithms in PHP. What are the precautions for PHP to count binary algorithms? The following is a practical case, let’s take a look.

How to implement the algorithm of counting the number of 1 in binary in PHP? This article introduces you to the example code of PHP to implement the statistical algorithm of the number of 1 in binary. Come and take a look.

question

Input a decimal

integer and output the number of 1’s in the binary representation of this number. Negative numbers are expressed in two's complement.

Solutions

This is a

bit operation question. Solution 1: You can find the number of 1's by ANDing each bit with 1 through bitwise AND operation.
Solution 2 (optimal solution): A clever method. A binary number that is not 0 must have at least one bit that is 1. When this number is reduced by one, its last bit of 1 will become 0. All subsequent 0's will be changed to 1's. For example, 10100 will become 10011 after subtracting one. Then, after ANDing the original numbers 10100 and 10011, you will get 10000. That is, through this operation, you can change a 1 into a 0, so how many times can a binary number do this? There are as many operations as 1.

Implementation code

//解法一
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";
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the PHP Chinese website!

Recommended reading:

Detailed explanation of the use of callback functions in PHP

How to use the file_put_contents function in PHP

The above is the detailed content of How to count binary algorithms in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn