논리 연산: 두 판 사이의 차이
새 문서: {{수학관련}} {{이해 어려움}} == 개요 == 19세기 중반에 조지 불이라는 사람이 고안한 논리 명제끼리 계산하는 것으로, 불 대수라고도 부른다. 1+1=1이 될 수 있는 기적의 계산법이다. 정확히 말하자면 우리가 아는 덧셈 기호의 용법과 다른 '논리합'이라는 것인데, 후술한다. 자격증 취득할 때 자주 접하게 되는 것으로, 전기 회로부터 코딩까지 다양한 분야에서 반드... |
|||
| 75번째 줄: | 75번째 줄: | ||
그런데 이건 아직 이 단계에서 설명하기엔 복잡하므로 생략한다. 코딩에 관심이 많다면 정보처리 관련 자격증 책을 사서 배울 수 있다. | 그런데 이건 아직 이 단계에서 설명하기엔 복잡하므로 생략한다. 코딩에 관심이 많다면 정보처리 관련 자격증 책을 사서 배울 수 있다. | ||
=== 논리곱(∧, AND) === | === 논리곱(∧, AND) === | ||
여기서부터는 논리가 2개 필요하다. 항이 2개이므로 '이항 연산'이라고 부른다. | |||
중딩 때 집합을 배울 때 교집합이라는 것을 배웠을 것이다. 그것과 같은 기능을 한다. A라는 집합에 포함되면서 동시에 B라는 집합에도 포함되는 것을 A∩B라고 쓰지 않았던가? | |||
마찬가지다. 논리곱은 A이면서 동시에 B, 즉 둘 다 참일 때에만 참이 되는 연산을 말한다. 기호는 ∧라고 쓴다. 즉 A와 B 둘 다 참인 것을 A∧B라고 쓴다. | |||
하나라도 거짓이면 논리곱의 값은 거짓이다. | |||
A·B 또는 AB라고 표기하기도 한다. | |||
코딩에서는 & 또는 &&라고 쓴다. C언어나 자바 등은 &를 비트 연산자로, &&를 논리 연산자로 쓰는데, 이 문서는 코딩을 가르치는 문서는 아니므로 비트 연산에 대해서는 (논리 대신) '이진수의 자릿수(비트)를 가지고 계산하는 것이라고 간단하게만 설명하고 넘어가도록 하자. | |||
{| class="wikitable" | |||
! colspan="4" style="background:black;color:white" align="center" align=center| AND(∧) 연산의 결과 | |||
|- | |||
! style="background:black;color:white" align="center" align=center| A | |||
! style="background:black;color:white" align="center" align=center| B | |||
| rowspan="5" style="background-color:white;text-align:center"| ∧ | |||
! style="background:black;color:white" align="center" align=center| A∧B | |||
|- | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
|- | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
|- | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
|- | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
|} | |||
=== 논리합(∨, OR) === | |||
반대로 논리합은 집합의 합집합 개념과 같다. A라는 집합에만 포함되어도 되고, B라는 집합에만 포함되어도 된다. 이를 A와 B를 합친 집합이라 하여 A∪B라고 썼을 것이다. | |||
논리합은 A가 참이거나 B가 참이거나 둘 중 하나만 성립해도 참이 되는 것이다. 물론 A이면서 동시에 B인 경우(논리곱)에도 참이 된다. 다만 둘 다 거짓인 경우에는 거짓이 된다. | |||
+ 기호를 써서 A+B라고 하기도 한다. 만약 A와 B 둘 다 참이라면? 숫자로 바꿨을 때 1+1이라고 쓰며 답은 1이 된다. 즉 논리합 연산에서 1+1=1인 것이다. | |||
코딩에서는 | 또는 ||라고 쓴다. 마찬가지로 C언어와 자바에서는 |는 비트 연산자, ||가 논리 연산자이다. | |||
{| class="wikitable" | |||
! colspan="4" style="background:black;color:white" align="center" align=center| OR(∨) 연산의 결과 | |||
|- | |||
! style="background:black;color:white" align="center" align=center| A | |||
! style="background:black;color:white" align="center" align=center| B | |||
| rowspan="5" style="background-color:white;text-align:center"| ∨ | |||
! style="background:black;color:white" align="center" align=center| A∨B | |||
|- | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
|- | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
|- | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
| style="background-color:#ff9d8d;text-align:center"| 0 | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
|- | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
| style="background-color:#87cefa;text-align:center"| 1 | |||
|} | |||
2026년 4월 6일 (월) 16:40 판
| 01 문서ㄴㄴ 수학과 관련된 것ㅇㄹ 다룹니다. 01 문서ㄴㄴ 수학과 관련된 무언7ㅏ0ㅔ 대해서 다루ㄴㄴ 문서입니다. ㄱㅂ식 수학일 수도 전공 수학일 수도 있고, 혹ㅇㄴ 수학과 관련된 역사속의 인물일지도 모ㄹㅂ니다. 01 문서ㄹㄹ 읽다7ㅏ 수학뽕0ㅔ 빠져버려도 본 위키ㄴㄴ 책임지지 않ㅅㅂ니다. 1 + 1 = 귀요미>_< |
| 이 문서는 이해하기 어려운 대상을 다룹니다. 이 문서는 일반적인 뇌를 가지고도 이해하기 어려운 대상에 대해 다룹니다. 두뇌를 풀가동해도 이해하기 어려울 것입니다. 나 아는사람 강다니엘 닮은 이모가 다시보게되는게 다시 그때처럼 안닮게 엄마보면 느껴지는걸수도 있는거임? |
개요
19세기 중반에 조지 불이라는 사람이 고안한 논리 명제끼리 계산하는 것으로, 불 대수라고도 부른다.
1+1=1이 될 수 있는 기적의 계산법이다. 정확히 말하자면 우리가 아는 덧셈 기호의 용법과 다른 '논리합'이라는 것인데, 후술한다.
자격증 취득할 때 자주 접하게 되는 것으로, 전기 회로부터 코딩까지 다양한 분야에서 반드시 알아야 하는 것이다.
당장 이 위키에서도 #if 문법이나 #expr 문법의 조건식을 작성하려면 불 대수 개념이 필수다.
다들 중학교 수학에서 배웠던 집합의 개념 알지? 그것과 매우 비슷하다.
참과 거짓
논리 명제(불 대수)는 이진법을 사용한다. 즉 0과 1밖에 없다. 이를 '원소'라 부른다.
중딩 때는 명제의 참과 거짓을 p와 ~p라고 배웠을 것이다.
그러나 불 대수에서는 수학식으로 쓸 때 참을 1, 거짓을 0이라 부른다.
| 불 대수의 원소 | ||
|---|---|---|
| 뜻 | 숫자 | 알파벳 |
| 거짓(False) | 0 | F |
| 참(True) | 1 | T |
기초 연산
그렇다면 이번에는 불 대수들이 무슨 연산 기호로 계산되는지 살펴보자.
가장 기초적인 것은
- 부정(¬, NOT)
- 논리곱(∧, AND)
- 논리합(∨, OR)
이 셋이다.
미리 설명하자면 부정은 너네가 아는 '~이/가 아니다'와 같으며, 논리곱 AND는 'A이면서 동시에 B', 논리합 OR는 'A이거나 B'이다.
부정(¬, NOT)
중딩 때 명제 앞에 ~(물결표)를 붙이면서 표현했던 것. 집합에서는 오른쪽 위에 작게 C를 붙여 '여집합'이라고 불렀을 것이다.
말 그대로 명제를 부정하는 식이다. 논리 연산식에서는 ¬를 앞에 붙여 표현할 것이다.
논리가 하나만 있어도 계산이 가능하다. 이를 '단항 연산'이라 부른다.
A라는 참인 명제가 '문재앙은 애미가 없다'라면 A에 부정 연산을 한 ¬A는 거짓인 명제, '문재앙은 애미가 있다'가 되는 것이다.
반대로 거짓인 명제(이재명은 유능하다)라면 부정 연산을 했을 때 참인 명제(이재명은 무능하다)가 나온다.
| NOT(¬) 연산의 결과 | ||
|---|---|---|
| A | ¬ | ¬A |
| 0 | 1 | |
| 1 | 0 | |
숫자로 된 불 대수(0, 1)에 부정 연산을 해서 뒤집힌 숫자(1, 0)를 '보수'라고 부르는데, 이런 연산을 하는 계산기를 '보수기'라고 부른다.
그리고 이진수의 모든 자릿수(비트)에 부정 연산을 해서 나온 수를 '1의 보수', 그 값에 1을 더한 것을 '2의 보수'라고 부른다. 2의 보수는 컴퓨터가 숫자를 음수로 만들 때 활용하는 방식이다.
그런데 이건 아직 이 단계에서 설명하기엔 복잡하므로 생략한다. 코딩에 관심이 많다면 정보처리 관련 자격증 책을 사서 배울 수 있다.
논리곱(∧, AND)
여기서부터는 논리가 2개 필요하다. 항이 2개이므로 '이항 연산'이라고 부른다.
중딩 때 집합을 배울 때 교집합이라는 것을 배웠을 것이다. 그것과 같은 기능을 한다. A라는 집합에 포함되면서 동시에 B라는 집합에도 포함되는 것을 A∩B라고 쓰지 않았던가?
마찬가지다. 논리곱은 A이면서 동시에 B, 즉 둘 다 참일 때에만 참이 되는 연산을 말한다. 기호는 ∧라고 쓴다. 즉 A와 B 둘 다 참인 것을 A∧B라고 쓴다.
하나라도 거짓이면 논리곱의 값은 거짓이다.
A·B 또는 AB라고 표기하기도 한다.
코딩에서는 & 또는 &&라고 쓴다. C언어나 자바 등은 &를 비트 연산자로, &&를 논리 연산자로 쓰는데, 이 문서는 코딩을 가르치는 문서는 아니므로 비트 연산에 대해서는 (논리 대신) '이진수의 자릿수(비트)를 가지고 계산하는 것이라고 간단하게만 설명하고 넘어가도록 하자.
| AND(∧) 연산의 결과 | |||
|---|---|---|---|
| A | B | ∧ | A∧B |
| 0 | 0 | 0 | |
| 0 | 1 | 0 | |
| 1 | 0 | 0 | |
| 1 | 1 | 1 | |
논리합(∨, OR)
반대로 논리합은 집합의 합집합 개념과 같다. A라는 집합에만 포함되어도 되고, B라는 집합에만 포함되어도 된다. 이를 A와 B를 합친 집합이라 하여 A∪B라고 썼을 것이다.
논리합은 A가 참이거나 B가 참이거나 둘 중 하나만 성립해도 참이 되는 것이다. 물론 A이면서 동시에 B인 경우(논리곱)에도 참이 된다. 다만 둘 다 거짓인 경우에는 거짓이 된다.
+ 기호를 써서 A+B라고 하기도 한다. 만약 A와 B 둘 다 참이라면? 숫자로 바꿨을 때 1+1이라고 쓰며 답은 1이 된다. 즉 논리합 연산에서 1+1=1인 것이다.
코딩에서는 | 또는 ||라고 쓴다. 마찬가지로 C언어와 자바에서는 |는 비트 연산자, ||가 논리 연산자이다.
| OR(∨) 연산의 결과 | |||
|---|---|---|---|
| A | B | ∨ | A∨B |
| 0 | 0 | 0 | |
| 0 | 1 | 1 | |
| 1 | 0 | 1 | |
| 1 | 1 | 1 | |