논리 연산: 두 판 사이의 차이

K-위키
새 문서: {{수학관련}} {{이해 어려움}} == 개요 == 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