2013년 6월 3일 월요일

How to check the squre of 2.

return !(number & (number -1));

원리는 간단하다. 

컴퓨터 내부의 연산은 2진수로 되는데 자리수가 2^0, 2^1, 2^2으로 나간다. 

2의 제곱은 1 2 4 8...

2진수로는 1, 10, 100, 1000 ... 즉, -1을 하면 무조건 2승수 자리를 까야한다.

그러나 3의 경우는 11, 즉 제일 앞에 1이 희생되지 않아도 되므로 &를 하면

무조건 1이 나온다.




댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

친칠라 법칙 ⑬ (완결) — 2026년의 예산표: 사전학습 : 사후학습 : 테스트타임

친칠라는 하나의 예산을 두 축(N, D)에 나누는 문제였다. 2026년은 세 개의 예산을 나누는 문제다 — 사전학습, 사후학습(RL), 그리고 테스트타임. 마지막 편은 이 셋의 비율을 재고, 시리즈가 열두 편 내내 미뤄 둔 계산을 마무리한다. 서빙...