CS특강 #3
Bool 연산 & 논리 게이트
Binary(2진표현)
![](https://blog.kakaocdn.net/dn/o2XRs/btspflmFjbg/g8PwURxYgKqgi40OhOMpCk/img.png)
2가지 전기적인 상태로 정보 표현이 가능하다.
위 방법을 Binary라고 부른다.
통상적으로 전기가 통하면 True, 숫자로 1로 표현하고 전기가 통하지 않으면 False, 숫자로 0으로 표현한다.
주의할 점으로 위 표현들은 같은 신호들을 우리가 받아들이기에 표현한 방식이라는 점에 유의해야한다.
++ 전기를 끊거나 연결하는 것 이외에도 다른 수준의 전류를 허용한다고 한다. (초기 전자 컴퓨터에는 3진법을 사용하거나 5진법을 사용할 수도 있었다고 함)
하지만 신호끼리 가까우면 섞일 우려가 있어 가능한 한 두개의 신호를 멀리 배치하여 명확한 신호로서 사용하는 것이 좋은데 그것이 바로 Binary이다. (사실 이 부분은 명확히 무슨 뜻인지 받아들이기 어렵다.)
In computers, an "on" state, when electricity is flowing, represents true.
The "off" state, no electricity flowing, represents false.
© 출처 CrashCourse
부울대수학과 논리게이트
![](https://blog.kakaocdn.net/dn/uEqTM/btspg1uk1Si/hDdMO71SJcl1iceKQCuMQK/img.jpg)
이진법을 사용한 또다른 중요한 이유 중 하나는 이미 세상에 참과 거짓을 다루는 부울 대수학의 존재 때문이다.
이미지의 수학자 조지 부울의 이름에서 따왔다고 한다.
이해를 돕기위한 대수학과의 비교
(대수학) 변수 : 숫자
(대수학) 연산 : +,- 등
(부울 대수학) 변수 : 참과 거짓
(부울 대수학) 연산 : 논리(AND,NOT,OR 등)
논리게이트 - NOT,AND,OR,XOR
Boolean의 가장 기본은
input이 true 일 때 output은 true
input이 false 일 때 output을 false 이다.
NOT
![](https://blog.kakaocdn.net/dn/1LRFQ/btsplpuPeYl/WAR7rNTIhCeHDdkIA0pKrK/img.png)
![](https://blog.kakaocdn.net/dn/bQbjTO/btsplpn0v7w/q9Q3pykIg12VT5coGlGJX0/img.png)
input의 반대를 출력한다.
input(회로상에서는 control wire)부분이 켜지면 전기가 아래로 흘러 output에는 전류가 흐르지 않고
input부분이 꺼지면 전기가 아래로 흐르지 않고 output으로 흐르게 된다.
AND
![](https://blog.kakaocdn.net/dn/QX6U8/btspkKMKcgk/DRxVXaV86nXmBoEeXFXI7K/img.png)
![](https://blog.kakaocdn.net/dn/c0cOht/btsplRxQrG5/aySA7BHVZRUYkhrCeB6jQK/img.png)
두개의 입력이 필요하며 둘다 true일 경우에만 true, 나머지는 false를 출력한다.
위의 회로를 2개 직렬로 연결하여 하나라도 꺼질시에 전류가 output으로 흐르지 못한다.
OR
![](https://blog.kakaocdn.net/dn/t4D8X/btspjXd7RIh/BFPimUUqWMywtqukELTm3K/img.png)
![](https://blog.kakaocdn.net/dn/bmgOXo/btspfltqyj8/QO7wECTZPKApw8bkZ9xXf0/img.png)
마찬가지로 2개의 입력이 필요하며 둘다 false일 경우에만 false, 나머지는 true를 출력한다.
AND와 반대로 회로 2개를 병렬로 연결하여 둘 중 하나만 켜지더라도 output에 전류가 흐르고 둘다 꺼져야지만 output에 전류가 흐르지 못한다.
XOR
![](https://blog.kakaocdn.net/dn/bkSfzT/btsplpIkfbf/qOSPCjo0uaeSbK25QLtIpk/img.png)
![](https://blog.kakaocdn.net/dn/BwdM1/btsplqAwUSj/OWMNf6j0GU48wMuuHGNGWk/img.png)
마지막은 조금 독특한 논리연산자로 둘다 true이거나 false면 false를 출력하고 하나만 true여야 true를 출력한다.
회로가 조금 복작한데 왼쪽 위 AND부터 살펴보면 입력이 둘다 true여야 true가 출력되는데 직렬로 연결된 NOT 때문에 false로 바뀐다.
이 말은 INPUT A와 INPUT B가 둘다 true 일 경우에만 위의 신호(not까지)가 false이고 나머지는 true임을 알 수 있다.
그 다음 아래 OR을 보면 둘다 false일 경우에만 false를 출력하고 나머지는 true를 출력한다.
즉 가장 오른쪽 AND는
(위의 경로) 둘다 true면 false 나머지는 전부 true
(아래 경로) 둘다 flase면 false 나저니는 전부 true
이므로 둘다 true거나 false 일 때 false가 출력되고
하나만 true일 때는 true가 출려되는 XOR연산자가 만들어짐을 알 수 있다.
'CS > CrashCourse' 카테고리의 다른 글
CS특강 공부#2 전자 컴퓨팅 (0) | 2023.02.02 |
---|---|
CS특강 공부#1 초기 컴퓨팅 (0) | 2022.06.23 |