나는 덧셈과 뺄셈의 차이를 얻지 못한다. 가장 간단한 방법으로 설명하십시오.정수 빼기 또는 오버플로 추가가 발생할 수있는 조건은 무엇입니까? 나는 diffrence를 얻지 않는다.
추가 할 때 정수를 저장하는 데 사용 된 정수 유형의 최대 크기를 초과하는 것을 알고 있습니다. 정수 오버플로가 발생하면 해석 된 값이 최대 값을 "감싸는"것처럼 보이고 최소값에서 다시 시작되지만 어떻게 방지 할 수 있습니까?
고맙습니다.
나는 덧셈과 뺄셈의 차이를 얻지 못한다. 가장 간단한 방법으로 설명하십시오.정수 빼기 또는 오버플로 추가가 발생할 수있는 조건은 무엇입니까? 나는 diffrence를 얻지 않는다.
추가 할 때 정수를 저장하는 데 사용 된 정수 유형의 최대 크기를 초과하는 것을 알고 있습니다. 정수 오버플로가 발생하면 해석 된 값이 최대 값을 "감싸는"것처럼 보이고 최소값에서 다시 시작되지만 어떻게 방지 할 수 있습니까?
고맙습니다.
관련 : http://teaching.idallen.com/dat2343/10f/notes/040_overflow.txt 이것은 x86의 캐리 (부호없는) 및 오버 플로우 (서명 됨) 플래그에 관한 것입니다.
MIPS의 경우이를 염두에 두어 읽어보십시오. add
은 x86이 OF로 설정할 때마다 트랩합니다.
MIPS에서 (a+b) < a
부호없는 비교를 사용하여 추가에서 캐리 아웃을 가져올 수 있습니다. 또는 하위의 경우 (a-b) > a
서명되지 않았습니다.
subu
과 (a-b) > a
서명 비교 후 서명 된 오버플로가 감지 될 수도 있습니다. 따라서 a-b
~ 이 넘지 않도록 오버플로가 필요하면 래핑되지 않은 결과가 INT_MIN과 INT_MAX 사이가되도록 입력을 선택하십시오. 그게 전부입니다.