Home >Backend Development >PHP Problem >How to find the power of 2 in php

How to find the power of 2 in php

zbt
zbtOriginal
2023-08-04 15:47:511399browse

php method to find the power of 2: 1. Bitwise operation determines whether it is a power of 2. Use the bitwise operator & to check whether only one bit in the binary representation of the number is 1. If it is 2 to the power of 2, then only one bit in the binary representation is 1, and the other bits are 0, just output the result; 2. Use mathematical functions to determine whether a number is a power of 2, use the log2 function, if a number is a power of 2, then its base 2 logarithm must be an integer, return 0, and just output the result.

How to find the power of 2 in php

The operating environment of this tutorial: windows10 system, php8.1.3 version, DELL G3 computer.

In PHP, you can use bitwise operators and mathematical functions to determine whether a number is a power of 2. The following is the method through bitwise operators:

function isPowerOfTwo($num) {
// 位运算判断是否为2的幂次方
// 使用位运算符 & 检查数字的二进制表示中是否只有一位是1
// 如果是2的幂次方,那么二进制表示中只有一位是1,其他位都是0
// 例如:4的二进制表示是100,8的二进制表示是1000
return ($num & ($num - 1)) == 0;
}
// 测试例子
$num1 = 4; // 4的二进制表示是100,是2的幂次方
$num2 = 8; // 8的二进制表示是1000,是2的幂次方
$num3 = 6; // 6的二进制表示是110,不是2的幂次方
// 调用函数判断是否是2的幂次方
echo $num1 . "是2的幂次方吗? " . (isPowerOfTwo($num1) ? "是" : "不是") . "\n";
echo $num2 . "是2的幂次方吗? " . (isPowerOfTwo($num2) ? "是" : "不是") . "\n";
echo $num3 . "是2的幂次方吗? " . (isPowerOfTwo($num3) ? "是" : "不是") . "\n";

Output result:

4是2的幂次方吗? 是
8是2的幂次方吗? 是
6是2的幂次方吗? 不是

In addition to using bitwise operators, you can also use mathematical functions to determine whether a number is a power of 2. The following is how to use the log2 function:

function isPowerOfTwo($num) {
// 使用log2函数判断是否为2的幂次方
// 如果一个数是2的幂次方,那么它的以2为底的对数一定是整数
return (log($num, 2) % 1) == 0;
}
// 测试例子
$num1 = 4; // 4是2的幂次方
$num2 = 8; // 8是2的幂次方
$num3 = 6; // 6不是2的幂次方
// 调用函数判断是否是2的幂次方
echo $num1 . "是2的幂次方吗? " . (isPowerOfTwo($num1) ? "是" : "不是") . "\n";
echo $num2 . "是2的幂次方吗? " . (isPowerOfTwo($num2) ? "是" : "不是") . "\n";
echo $num3 . "是2的幂次方吗? " . (isPowerOfTwo($num3) ? "是" : "不是") . "\n";

The output result is the same, also:

4是2的幂次方吗? 是
8是2的幂次方吗? 是
6是2的幂次方吗? 不是

With the above two methods, you can use the PHP programming language to determine whether a number is a power of 2 square. You can choose the appropriate method to achieve it based on your specific needs. No matter which method you choose, it can help you quickly determine whether a number is a power of 2 .

The above is the detailed content of How to find the power of 2 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