Home >Backend Development >PHP Problem >How to find the power of 2 in php
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.
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!