덧셈에서는 부호가 다른 피연산자를 더할 경우에는 오버플로가 발생하지 않는다.
이유는 계산 결과가 두 피연산자 주 어느 하나보다는 커질 수 없기 때문이다.
뺄셈에서도 똑같이 오버 플로가 발생하지 않는 경우가 있다. 단 뺄셈이므로 부호가 같을 경우에는 오버플로가 발생할 수 없다.(두번째 연산자의 부호를 바꾸어 더하는 방식으로 뺄셈을 처리하므로)그러므로 같은 부호의 수를 빼는 것은 부호가 다른 수를 더하는 것과 같다.
워드의 크기 32비트
32비트 수 두개를 더하거나 뺸 결과를 완벽하게 표현하기 위해서는 33비트가 필요할 경우가 있다.
워드 크기가 32비트이므로 33번째 비트는 표시할 수 없는데, 이렇게 되면 부호 비트가 결과의 부호가 아니라 크기를 나타내는 비트 중 최상의 비트 값으로 결정된다.
두 양수를 더한 값이 음수가 되면 오버플로가 발생한다.
두 음수를 더했는데 합이 양수가 되는 경우에도 오버플로가 발생한다.
MIPS는 오버플로를 탐지하면 예외를 발생 시킨다.(인터럽트)
인터럽트 : 계획되지 않은 프로시저 호출
이진 소수점
실수를 정규화된 형태의 표준 과학적 표기법으로 나타내면 좋은점
- 부동소수점 숫자를 포함한 자료의 교환을 간단하게 한다.
- 산술 알고리즘이 간단해진다
- 한 워드내에 저장할 수 잇는 수의 정밀도를 증가한다.
언더플로 : 음수 지수의 절댓값이 너무 커서 지수 부분에 표현될 수 없는 경우 (너무 작아서 표현이 어려움)
double - exponent(11bit) - fraction(52bit)
1bit 생략되어 있으므로 단일 정밀도에서는 24비트, 2배 정밀도에서는 53비트
'Programming > Architecture' 카테고리의 다른 글
Chapter1 (0) | 2019.05.27 |
---|---|
Chapter1 (0) | 2019.04.14 |