1과 0의 덧셈 연산
0과 1을 더하면 아래 그림과 같은 결과가 나온다.
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 10
sum과 carry
위의 그림에서 1과 1을 더했을 때는 10이 된다. 이를 이진수로 나타낼 때는 한자리에 10을 쓸 수 없기 때문에
sum비트와 carry비트로 나누어서 10을 처리해준다.
sum 비트는 위와 똑같이 덧셈 연산을 하고,
carry 비트는 10과 같이 자릿수가 달라졌을 때만 1을 담는다.
논리게이트로 나타낸 덧셈기
XOR 게이트로 sum을, AND 게이트로 carry를 나타낼 수 있다.
두개의 논리게이트를 이용하여, sum, carry를 표현한다.
각각 하나의 bit인 A와 B를 통해 합 sum과 올림수 carry를 출력하는 조합 논리회로를 만들 수 있다.
반 가산기(half adder)
반가산기는 이진수의 한자리수를 연산하고, 자리올림수는 자리올림수 출력(carry out)에 따라 출력한다.
즉, sum out과 carry out을 계산 할 수 있는 가산기를 말한다.
전 가산기(full adder)
위의 반가산기는 입력 A와 입력 B을 받아서 합 sum out과 올림 carry out을 출력할 수 있었다.
여기에 아래 자리수에서 발생한 올림수 carry in까지 입력받아 계산할 수 있는 가산기를 전가산기라고 한다.
- 전 가산기는 Carry in, A, B 세개의 입력을 받아서 해당 값들에 대한 sum out, carry out을 출력한다.
- 반가산기 두개와 OR게이트로 표현 할 수 있다.
반 가산기는 1비트의 데이터에 대해서만 사용 가능하다.
이 반가산기를 조합하여 전 가산기를 만들었고,
전 가산기는 이전 값의 올림에 대한 계산까지 가능하기 때문에 모든 비트에 대하여 사용 가능하다.
이로써 논리게이트들을 이용해서 이진수의 계산을 할수 있게 되었다.
반응형
'컴퓨터 공학' 카테고리의 다른 글
[CS/Network] TCP와 UDP 프로토콜 (0) | 2023.07.20 |
---|---|
[CS] CPU 파이프라인 (0) | 2023.07.14 |
[CS] CPU의 구조와 동작 원리, 데이터 접근 (0) | 2023.07.12 |
[CS] 메모리 계층과 저장 장치(RAM, Register,Cache, HDD) (0) | 2023.07.11 |
[CS/디지털 논리 회로] 논리 게이트 (0) | 2023.07.06 |