Arithmetic for Computers
이진수 덧셈 / 뺄셈 기본
Half Adder (입력 2개)
- 출력: Sum, Carry
- Sum = XOR (서로 다를 때 1)
- Carry - AND (둘 다 1일때 1)
Full Adder (입력 3개: A, B, Carry-in)
- 출력: Sum, Carry-out
- Sum = 1의 개수가 홀수일 때 1
- Carry = 1이 2개 이상일 때 1
병렬 덧셈기
- n비트 덧셈 = Full Adder n개 연결
- 자리올림(Carry)이 다음 자리로 전달됨
보수 표현 (음수 표현)
컴퓨터는 유한한 비트 수만 사용해 범위가 제한됨
1의 보수
2의 보수
왜 2의 보수를 쓰는가?
- 덧셈기 하나로 뺄셈 가능
- 하드웨어 단순화
- 0이 하나만 존재
오버플로우
발생조건
- 양수 + 양수 -> 음수
- 음수 + 음수 -> 양수
뺄셈기
X-Y=X+(Y의 2의 보수)
- 빌림 개념이 존재
- 실제 하드웨어는 덧셈기로 처리
곱셈
기본 원리
- 2진수 곱셈은 1이면 더하고 0이면 무시
- 매 단계마다 shift
나눗셈
- 일단 무조건 빼기
- 음수 나오면 되돌리기
- 몫 기록
- shift 반복. shift 반복
나눗셈 = 반복적 뺄셈