해결된 질문
작성
·
301
0
안녕하세요 널널한 개발자님! 강의 정말 잘 듣고 있습니다.
해당 강의의 컴퓨터가 곱셈을 하는 법에서 궁금한 점이 있어서 질문 남기게 되었습니다. 8*2로 예를 들자면, 십진수 8을 이진수로 표현하면 1000인데, 여기서 왼쪽으로 한칸 밀면 10000에서 오버플로우 된 부분은 버리면 0000이라 십진수로 표현하면 16이 아닌 0이 되잖습니까? '오버플로우는 버린다'의 기준이 어떻게 되는지, 곱셈에서도 오버플로우는 버리는 게 맞는 건지가 헷갈립니다..!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
답변 1
0
오버플로의 기준은 간단합니다. 32비트 체계라면 32비트 표현 범위(0~2의 32제곱 -1)를 넘어서는 순간 오버플로우가 됩니다. 버린다는 기준은 표현 범위를 넘어서 표현이 불가능하다는 의미입니다. 이는 모든 사칙연산에 동일하게 적용됩니다. 물론 덧셈이나 곱셈에서 발생합니다. 참고하시기 바랍니다.
늦게 확인하여 죄송합니다. 친절한 답변 정말 감사드립니다!