그래서 내가 책을 읽을 때 같은 부호의 다른 부호와 뺄셈을 추가 할 때 오버 플로우가 발생할 수 없다고 말합니다. 하지만 다음과 같은 질문이 있습니다. 185 - 122 122의 2 진수를 2의 보수로 변환하고 다른 부호 인 추가를 수행했습니다. 185 + (- 122) 그리고 이들을 더할 때 부호가 생깁니다. 비트가 100111111로 오버플로됩니다. 그러나 왼쪽의 MSB를 잘라 내면 올바른 대답입니다. 오버플로입니까?오버 플로우 연산입니까?
1
A
답변
1
아니요, 오버플로가 아닙니다. MSB에 2 1's
이 추가되어 발생하는 오버플로를 그냥 버려야합니다. 부터 Wikipedia
이진수의 2의 보수를 얻으려면 비트가 비트 NOT 연산을 사용하여 반전되거나 "반전됩니다". 1의 값은 다음 예 (122)의 2의 보수를받는
185 10111001 122 01111010 -
에 따라서 0
의 2의 보수를 촬영할 때 발생하는 오버 플로우 (하나의 무시 얻어진 값에 더해지는 보완 +1)
01111010 => 10000110
추가 :
10111001 185
10000110 +(-122)
--------
00111111 (63)
= 63
overflow
은 무시됩니다.
그러나 2의 보수 수행 한 후 오버 플로우를 검출하기위한 규칙이 있습니다
- 하는 경우를 부정적인 결과
- 만약에 두 개의 긍정적 인 숫자의 합이 개 음수 결과 긍정적 인 결과 의 합
관련 문제
- 1. D3 그룹 오버 플로우 오버 플로우 문제
- 2. 오버 플로우
- 3. SqlDataAdapter.Fill() - 변환 오버 플로우
- 4. CSS 오버 플로우 : 숨김
- 5. 파이썬 INT 오버 플로우
- 6. 오버 플로우 및 플로트는
- 7. 입력 오버 플로우 컨테이너
- 8. 조립, 오버 플로우 레지스터
- 9. CSS 전환 오버 플로우
- 10. LinearLayout 오버 플로우 조정
- 11. -webkit-오버 플로우 스크롤 :
- 12. 타이머 및 오버 플로우
- 13. 상대 사업부는 오버 플로우
- 14. 방지 스택 오버 플로우
- 15. PHP 테이블 오버 플로우
- 16. 오버 플로우 데이터 구조
- 17. 오버 플로우 엑스 : 자동
- 18. 버퍼 오버 플로우 테스트
- 19. 버퍼 오버 플로우
- 20. 버퍼 오버 플로우 악용
- 21. CSS는 오버 플로우-Y :
- 22. 사업부 컨테이너 오버 플로우
- 23. IE7 오버 플로우 문제
- 24. div에서 텍스트 오버 플로우
- 25. 스택 오버 플로우
- 26. 오버 플로우 및
- 27. VB.NET ULONG는 오버 플로우
- 28. 큐 오버 플로우 조건
- 29. OLEDB의 오버 플로우 예외
- 30. SqlDateTime 오버 플로우 예외
@ 로젠 - CPU의/ALU가 2의 보수를 내부적으로 사용하는 이유에 대한 자세한 답변이 http://stackoverflow.com/q/6853524/314291에 있습니다. 분명히, 최종 사용자로서, 우리는 예를 들어, 인텔에서 빼기 위해'SUB '사용) – StuartLC