0
A
답변
8
이 방정식은 n
에서 최하위 0이 아닌 비트를 제로로 만듭니다.
8 비트로 가정하면 여기 엔 봉투 설명이 있습니다. 하자 n
결과가 0이면, 결과로서 70
n = 01000110
n-1 = 01000101
--------
n&(n-1) = 01000100
일, 그것은 원래 n
에 설정된 하나의 비트는 2의 거듭 제곱이었다 의미 있었다 수단 (또는 그것으로되는 0이었다).
n
이 0이 될 때까지 반복적으로 적용하면 반복 횟수는 원래 n
에 설정된 비트 수를 계산합니다. 그러나 대부분의 프로세서에는이 작업을 수행하는 기본 제공 작업이 있습니다.
비트 해킹이 일반적으로 관심이있는 경우이 사이트에서 "bithacks"를 검색하면 많은 조회가 생성됩니다.
'x & (x - 1)'의 결과가 0이면'x'는 * 2의 거듭 제곱 *입니다. [이 페이지]의 # 9 (http://www.exploringbinary.com/ten-ways-to-check-if-an-integer-is-a-power-of-two-in-c/)를 참조하십시오. – meowgoesthedog
누군가 내가 그런 쓰레기를 배울 수있는 곳을 알고 있다면, 공유 해주세요. 고맙습니다. –
https://graphics.stanford.edu/~seander/bithacks.html – pm100