나도 막 그렇게 디테일하게 아는 건 아닌데 이걸 대체 어떻게 아냐면 수능에 저게 나왔었음... ㅋㅋㅋㅋㅋㅋ 놀랍게도 실화입니다. 그래서 직탐 등급 잘 받으려면 첫번째로 엑셀(if랑 룩업계열), 두번째로 HTML(...), 세번째로 베이직(VB 맞음), 네번째로 이걸 잘 해야 함... 베이직은 뭐 수능시험장에서 코테 치는 것도 아니고 코드랑 초기 변수 주고 이거 다 돌면 뭐됨? 이런 식으로 나왔습니다.
불 대수
왜 그... 프로그래밍 언어를 공부하다보면 자료형이 나온다. 인트 플로트 문자열(스트링) 그리고 꼭 개근하는 자료형이 바로 Boolean인데... 왜 그거 있잖음. True AND False = False. 이 T/F를 지지고 볶는게 논리 연산이라고 보면 된다. 그래서 논리게이트의 진리표 자체는 불 대수에도 있다.
매우 당연하게도 만든 사람 이름이 불이다. ???: 어떻게 사람 이름이 불 ㅋㅋㅋㅋㅋ ??: 어떻게 사람 이름이 남쪽 ㅋㅋㅋㅋㅋㅋ
진리표
AND, OR, NOT, XOR만 외우면 나머지 세개는 NOT이랑 조합하는거라 쉽다. 수능 성적 걸리면 어떻게든 외우게 된다
AND(A ∧ B)
A | B | 출력 |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
입력으로 들어온 두 개가 전부 참이어야 참을 출력한다. 즉, AND에서 False가 뜬다는 건 적어도 하나는 거짓이라는 얘기이기도 하다.
OR(A ∨ B)
A | B | 출력 |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
둘 중 하나라도 참이면 True를 출력한다.
NOT(¬, !A)
A | 출력 |
0 | 1 |
1 | 0 |
입력과 반대되는 출력을 내놓는다. 입력이 False면 True, True면 False. 기호는 왼쪽에 있는 꺾쇠 기호가 맞는데, 프로그래밍 언어에서는 보통 !를 붙여서 쓴다. 만약 if문에 !=가 있다면 'NOT equal'이라고 보면 된다. (실제로도 같지 않다는 얘기)
NAND(A ⊼ B)
A | B | 출력 |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
얘는 AND+NOT.
NOR(A ⊽ B)
A | B | 출력 |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
OR+NOT.
XOR(A ⊻ B)
A | B | 출력 |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
배타적 논리합이라서 두 입력의 값이 달라야 True를 출력한다. 보통 지수승을 표기할 때 n^m 이런 형식으로 쓰는데 파이썬이나 자바스크립트에서는 XOR 기호이기 때문에 지수승은 **로 써주자.
XNOR(EQV, A ≡ B)
A | B | 출력 |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
XOR+NOT이라고 생각하면 쉽다. 모든 입력의 값이 같아야 True를 반환한다.
논리게이트
논리게이트는 불 대수를 물리적인 장치에 구현한 것이다. 불 대수(물리) 그래서 기호가...? 표시 방식은 세 가지가 있는데 저건 ANSI 방식. 아니 ㄹㅇ 이걸로 외웠음.
논리게이트가 들어가는 것 중에 가산기 듀오가 있다. 반가산기와 전가산기인데... 어? 반...? 1/2? 그러면 반가산기 두개 합치면 전가산기 되나요? 아뇨 OR게이트 추가해야됩니다.
'Coding > 코딩잡담' 카테고리의 다른 글
SI 접두어와 컴퓨터 용량 (0) | 2022.10.10 |
---|---|
SMILES (0) | 2022.10.06 |
chmod가 뭐지? (0) | 2022.09.23 |
스택과 큐 (0) | 2022.09.19 |
이진 탐색 알고리즘 (0) | 2022.09.08 |