논리회로 게이트란, 입력 단자 1개 이상과 출력 단자 1개로 구성되는 전자 회로 입니다. 이들을 휘뚜루마뚜루 합치고 엮어서 다른 회로를 만들거에요.
기본적으로 논리회로 게이트를 8가지 알아보겠습니다. 전부 다 외울게 아니라 비슷한 구조의 게이트는 비슷하게 생겼으므로 무서워하지 말기!

2진수 덧셈을 해보겠습니다.
0+0=0,
1+0=1
0+1=1
1+1=2에서 2를 10으로 표현하는 건 다들 아시죠?
이때 올림수 C를 1, 몫 S를 0이라고 하면,
| A | B | C | S |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
이런 꼴이 됩니다.
잘 보면, C의 경우 A,B가 1이여야 1이 나오므로, AND게이트 를 이용했다고 볼 수 있고, S의 경우엔 둘이 달라야 1이 나오므로 XOR 게이트를 활용했다고 볼 수 있습니다.
이를 회로로 표현해 반가산기를 만들 수 있고, 반가산기 2개와 OR게이트를 이용해 전가산기를 만들 수 있습니다.

즉, 반가산기는 숫자 두 개를 계산해 올림수와 몫을 구하고,
전가산기는 숫자 세개( 그림상에서 A,B,C )를 계산해 올림수와 몫을 구하는 논리회로입니다.
가산기와 같이 여러 회로가 조합되어 있는 논리회로를 조합 논리회로라고 합니다. 가산기 이외에 다른 조합 논리회로를 알아봅시다.
인코더: 값과 신호를 2진수 변환시켜주는 회로
디코더: 2진수를 값과 신호로 변환시켜주는 회로
멀티플렉서: 여러 입력 중 하나를 골라, 한 출력을 하는 회로
디멀티플렉서: 한 입력정보로 여러 출력 중 하나를 출력하는 회로

컴퓨터는 전원이 연결되어 있는 동안 상태를 계속 유지하죠?
이는 플립플랍이라는 조합 논리회로를 활용해서 구현할 수 있습니다. 플립플랍 중 RS플립플랍에 대해 먼저 알아봅시다.

(Q값(현재값)과 Q의 보수값은 항상 달라야합니다.)
또,SET에 0이 들어왔을때 Q(t+1)이 0이 되고, 1이 들어오면 Q(t+1)이 1이 되면서 상태를 유지하는 형식입니다.
그러나 치명적 단점이 있는데, S와 R에 모두 1이 들어오면 Q(t+1)이 그 결과를 알지 못하고 불능상태가 된다는 점입니다.
이를 보완하기 위해 JK 플립플랍이 등장했습니다.

JK플립플랍은 J와 K에 1이 들어오면 반전시켜 결과를 출력합니다. 이를 활용해,
입력값을 반전시켜 출력하는 T플립플랍으로 사용할 수 있고,(이때 T는 TOGGLE)
입력값을 그대로 출력하는 D플립플랍으로도 사용할 수 있습니다.
3번째 게시물로 이어집니다.
(https://velog.io/@min1123838/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EB%8A%A5%EC%82%AC%EC%A0%84%EC%9E%90%EA%B3%84%EC%82%B0%EA%B8%B0%EC%9D%BC%EB%B0%98-3)