> 백엔드 개발 > PHP 문제 > PHP에서 2의 거듭제곱을 찾는 방법

PHP에서 2의 거듭제곱을 찾는 방법

zbt
풀어 주다: 2023-08-09 10:02:28
원래의
1417명이 탐색했습니다.

PHP에서 2의 거듭제곱을 구하는 방법: 1. 비트 연산을 사용하여 2의 거듭제곱인지 확인합니다. 비트 연산자 &를 사용하여 숫자의 이진 표현에서 한 비트만 1인지 확인합니다. 는 2의 거듭제곱인 경우 이진수 표현에서 한 비트만 1이고 다른 비트는 0이므로 결과를 출력합니다. 2. 숫자가 2의 거듭제곱인지 확인하려면 log2 함수를 사용하세요. , 숫자가 2의 거듭제곱인 경우 밑이 2인 로그는 정수여야 하고 0을 반환하고 결과를 출력해야 합니다.

PHP에서 2의 거듭제곱을 찾는 방법

이 튜토리얼의 운영 환경: Windows 10 시스템, 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的幂次方吗? 不是
로그인 후 복사
로그인 후 복사

위의 두 가지 방법을 사용하면 PHP 프로그래밍 언어를 사용하여 숫자가 2의 거듭제곱인지 확인할 수 있습니다. 특정 요구 사항에 따라 적절한 방법을 선택하여 이를 달성할 수 있습니다. 어떤 방법을 선택하든 숫자가 2의 거듭제곱인지 빠르게 판단하는 데 도움이 됩니다. .

위 내용은 PHP에서 2의 거듭제곱을 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿