:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
13/02/25 15:59
t=1 << log_t;
N=1 << log_N; 이 부분에서 연산 우선 순위상 1 << log_t 가 먼저 계산 되기 때문에 그렇습니다. 아래와 같이하면 됩니다. t = 1; N = 1; t <<= log_t; N <<= log_N;
13/02/25 15:59
N=1 << log_N; 이 부분이 문제입니다. 결국 1 << log_N을 계산한 후에 N에 집어넣어라, 인데 1도 32bit integer, log_N도 32bit integer이므로 N이 64bit integer라고 하더라도 type casting이 일어나기 전에 이미 overflow가 되어버리죠.
해결책은 1LL << log_N 이렇게 하시면 1이 64bit integer가 되기 때문에 casting이 잘 일어납니다.
|