Re: 비트 시프트 연산자 질문
, 도장_ 관리자님이 작성int 배열이면 배열 안에 숫자는 int로 동작합니다.
signed int의 overflow는 정의되지 않은 동작(UB, Undefined Behavior)입니다.
따라서 해당 동작은 컴파일러 구현체마다 결과가 다르고, 왜 그렇게 동작하는지 답변할 수 있는 사항이 아닙니다. 해당 사항은 컴파일러 제조업체에 직접 문의하셔야 할 것으로 보입니다.
unsigned int 배열이면 안에 있는 숫자는 unsigned int로 동작합니다.
unsigned int의 overflow만 정의된 동작입니다.
따라서 int로 테스트한 것이라면 정의되지 않은 동작이므로 왜 그런지 알 수 없습니다.
마찬가지로 이러한 동작을 시험 문제로 내는 학교, 학원이 있다면 무시하십시오.
잘못된 내용을 가르치는 곳이 너무 많습니다. 그리고 입사 면접에서는 이런 질문을 하고 반드시 탈락시키는 곳이 많다는 점도 주의하십시오.