2012-04-04 3 views
0
int64_t maskTestNum = (1ll << 63); 

왜이 값이 아래의 값으로 인쇄 될 수 있습니까?이상한 비트 시프트 결과

-9223372036854775808

나는 절대 값이 옳다고 생각하지만 왜 빼기 기호?

+3

음, 부호있는 숫자이고 부호 비트로 이동 했습니까? –

+0

OK, ta ... 부호있는 비트에 대해 알지 못했지만 의미가 있습니다. – Remover

답변

2

대신 uint64_t 부호없는 정수를 사용하십시오.