Maison  >  Article  >  développement back-end  >  Comment trouver la puissance de 2 en php

Comment trouver la puissance de 2 en php

zbt
zbtoriginal
2023-08-04 15:47:511363parcourir

Comment trouver la puissance de 2 en PHP : 1. Utilisez des opérations au niveau du bit pour déterminer s'il s'agit d'une puissance de 2. Utilisez l'opérateur bit & pour vérifier si un seul bit dans la représentation binaire du nombre est 1. Si c'est le cas est une puissance de 2, alors un seul bit dans la représentation binaire est 1 et les autres bits sont 0, affichez simplement le résultat 2. Utilisez des fonctions mathématiques pour déterminer si un nombre est une puissance de 2, utilisez la fonction log2. , si un nombre est une puissance de 2, alors son logarithme en base 2 doit être un entier, renvoyer 0 et afficher simplement le résultat.

Comment trouver la puissance de 2 en php

L'environnement d'exploitation de ce tutoriel : système Windows 10, version php8.1.3, ordinateur DELL G3.

En PHP, vous pouvez utiliser des opérateurs au niveau du bit et des fonctions mathématiques pour déterminer si un nombre est une puissance de 2. Voici la méthode utilisant des opérateurs au niveau du bit :

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";

Résultat de sortie :

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

En plus d'utiliser des opérateurs au niveau du bit, vous pouvez également utiliser des fonctions mathématiques pour déterminer si un nombre est une puissance de 2. Voici comment utiliser la fonction 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";

Le résultat de sortie est le même, qui est également :

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

Avec les deux méthodes ci-dessus, vous pouvez utiliser le langage de programmation PHP pour déterminer si un nombre est une puissance de 2. Vous pouvez choisir la méthode appropriée pour y parvenir en fonction de vos besoins spécifiques. Quelle que soit la méthode que vous choisissez, elle peut vous aider à déterminer rapidement si un nombre est une puissance de 2. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn