2017-05-17 9 views
0

가 계산하는 쉬운 방법이 있나요 2^시간 *의 천장을 만들다 (I/2^H)를 계산하기어떻게

예를 들면, (2^H) * 층 (I/(2^H))에 대한 플로어 함수를 사용하지 않는

i&-(1<<h) 

같은 것을 사용하여 계산 될 수있다.

+0

@Dijkgraaf java –

답변

0

분명히 ^의 지수이며 비트 별 XOR이 아닙니다. 따라서

(i + (1 << h) - 1) & (-1 << h) 

과 같은 것을 사용해야합니다.

+0

거기에'-1 << h'을 사용하여 작업을 저장할 수 없습니까? – harold

+0

@harold 네, 이것도 잘 작동합니다. – Henry

+0

죄송합니다. @harold의 언급 내용을 업데이트 할 수 있습니까? –