문제

이 코드는 무엇을 의미하며 비트 시프트를 사용하지 않고도 동일하게 달성하는 다른 방법은 무엇입니까?

if ($n & ($n - 1))
도움이 되었습니까?

해결책

그 공식 숫자가 2의 전력인지 확인하는지 확인합니다. (서면으로 된 상태가 사실이라면 숫자는 ~ 아니다 2의 힘).

다른 방법으로, 테스트를 확인하여 이진 표현에 하나 이상의 "1"비트가 있는지 확인합니다. $n. 0 또는 비트 세트 만 있으면 테스트가 거짓입니다.

그 속성을 결정하는 가장 효율적인 방법입니다.

다른 팁

첫째,이 코드는 유효한 PHP이므로 제목이 좋지 않습니다.

둘째, 이진 산술이 진행되는 것은 다음과 같이 보입니다.

42 = 101010
   &
41 = 101001
-----------
40 = 101000

Greg가 말한 것처럼 이것은 2 숫자의 전력을 확인하는 가장 빠른 방법이지만 숫자가 있는지 확인하기 위해 확인한 코드 2의 힘이 아닙니다. 이것은 PHP의 정책에 의해 쉽게 확인할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top