Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk mencari kuasa 2 dalam php

Bagaimana untuk mencari kuasa 2 dalam php

zbt
Lepaskan: 2023-08-09 10:02:28
asal
1416 orang telah melayarinya

Cara mencari kuasa 2 dalam PHP: 1. Gunakan operasi bitwise untuk menentukan sama ada ia kuasa 2. Gunakan operator bit & semak sama ada hanya satu bit dalam perwakilan binari nombor ialah 1. Jika ia ialah kuasa 2, , maka hanya satu bit dalam perwakilan binari ialah 1, dan bit lain ialah 0, hanya keluarkan hasilnya 2. Gunakan fungsi matematik untuk menentukan sama ada nombor adalah kuasa 2, gunakan fungsi log2 , jika nombor ialah kuasa 2 kuasa, maka logaritma asas 2nya mestilah integer, kembalikan 0, dan hanya keluarkan hasilnya.

Bagaimana untuk mencari kuasa 2 dalam php

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi php8.1.3, komputer DELL G3.

Dalam PHP, anda boleh menggunakan operator bitwise dan fungsi matematik untuk menentukan sama ada nombor ialah kuasa 2. Berikut ialah kaedah menggunakan operator bitwise:

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";
Salin selepas log masuk

Hasil keluaran:

4是2的幂次方吗? 是
8是2的幂次方吗? 是
6是2的幂次方吗? 不是
Salin selepas log masuk
Salin selepas log masuk

Selain menggunakan operator bitwise, anda juga boleh menggunakan fungsi matematik untuk menentukan sama ada nombor ialah kuasa 2. Berikut ialah cara menggunakan fungsi 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";
Salin selepas log masuk

Hasil output adalah sama, iaitu:

4是2的幂次方吗? 是
8是2的幂次方吗? 是
6是2的幂次方吗? 不是
Salin selepas log masuk
Salin selepas log masuk

Dengan dua kaedah di atas, anda boleh menggunakan bahasa pengaturcaraan PHP untuk menentukan sama ada nombor adalah kuasa 2. Anda boleh memilih kaedah yang sesuai untuk mencapainya berdasarkan keperluan khusus anda. Tidak kira kaedah yang anda pilih, ini boleh membantu anda menentukan dengan cepat sama ada nombor ialah kuasa 2 .

Atas ialah kandungan terperinci Bagaimana untuk mencari kuasa 2 dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan