ALU
Addition
Subtraction
양수 (MSB : 0) 끼리 더했는데 MSB 1됨 → overflow
음수 (MSB : 1) 끼리 더했는데 MSB 0됨 → overflow X
Overflow
Multiplication
Multiplicand * Multiplier
multiplier에 1이 있으면 → multiplicand의 copy를 적음
multiplier에 0이 있으면 → 0을 적음
multiplicand : shift left
multiplier : shift right
Division
Quotient * Divisor + Remainder
원리 : 초기 Remainder를 Dividend로 초기화 하고, Divisor를 계속 빼준다.
Quotient : shift left
Divisor : shift right
Floating Point
$$ (1.xxxxxx)_2 * 2^{yyyyy} $$
$$ (-1)^S * F * 2^E $$
Single precision case (32비트, 속도 ↑)
sign : 1비트
exponent (지수) : 8비트
fraction (소수점) : 23비트
$$ (-1)^S * (1 + F) * 2^E $$
문제점
→ 해결 : Double precision
Double precision (64비트, accuracy ↑, 속도 ↓)
$$ (-1)^S * (1 + F) * 2^E $$