php メソッドで 2 の累乗を確認します。 1. ビット単位の演算により、2 の累乗であるかどうかが判断されます。ビット単位の演算子 & を使用して、数値のバイナリ表現の 1 つのビットのみが 1 であるかどうかを確認します。 2 の 2 乗である場合、バイナリ表現の 1 つのビットだけが 1 で、他のビットは 0 なので、結果を出力するだけです。 2. 数学関数を使用して、数値が 2 のべき乗であるかどうかを判断します。 log2 関数では、数値が 2 の累乗の場合、その底 2 の対数は整数でなければならず、0 を返し、結果を出力するだけです。
このチュートリアルの動作環境: Windows10 システム、php8.1.3 バージョン、DELL G3 コンピューター。
PHP では、ビット演算子と数学関数を使用して、数値が 2 の累乗かどうかを判断できます。次に、ビット単位の演算子を使用する方法を示します。
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";
出力結果:
4是2的幂次方吗? 是 8是2的幂次方吗? 是 6是2的幂次方吗? 不是
ビット単位の演算子を使用するだけでなく、数学関数を使用して、数値が 2 のべき乗であるかどうかを判断することもできます。 log2 関数の使用方法は次のとおりです:
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";
出力結果も同じです:
4是2的幂次方吗? 是 8是2的幂次方吗? 是 6是2的幂次方吗? 不是
上記の 2 つの方法では、PHP プログラミング言語を使用して、数値は 2 の 2 乗です。特定のニーズに基づいて、それを実現する適切な方法を選択できます。どの方法を選択しても、数値が 2 の累乗かどうかをすばやく判断するのに役立ちます。 。
以上がPHPで2の累乗を求める方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。