2011-04-13 7 views

답변

20

이것은 첫 번째 줄에 실수로 << '\n'이 있기 때문입니다. 그 효과는 최소값의 비트를 13 위치 (13은 문자 코드 \n 임)만큼 왼쪽으로 시프트하는 것입니다. 가장 음의 값의 비트 패턴 1000...0 때문에, 결과는 0

+0

좋은 사람! 어떻게 보이지 않을 수 있겠습니까?) –

+0

@ 우리가 할 수있는 일은 없습니다 : 복사/붙여 넣기는 눈이 멀게합니다. (원래이 모든 것을 한 줄로 생각했다고 가정합니다.) - 나는 비슷한 일을 분명히했습니다 ;-) –

2
signed int sint_ = numeric_limits<signed int>::min() << '\n'; 

는 끝이 \n 무엇으로?

signed int sint_ = numeric_limits<signed int>::min(); 

:

이 당신이 원하는 아닌가요?

데모 : http://ideone.com/aOXGH

+1

좋은 사람 ! 어떻게 보지 못했습니까?) –

+0

@Alexander : 어떻게'\ n'이 문제가되지 않습니까? 그 문제의 일부. '<< \ n'을'<< 0'으로 대체하면 시프트 연산자가 여전히 있더라도 코드가 예상대로 작동하기 때문에 문제는 '시프트 연산자'가 아니라고 말할 수 있습니다. – Nawaz

관련 문제