"논리연산자"의 두 판 사이의 차이
17번째 줄: | 17번째 줄: | ||
===종류=== | ===종류=== | ||
==== 논리합(OR; ||) ==== | ==== 논리합(OR; ||) ==== | ||
+ | 두 명제 중 어느 한 명제만 참이어도 참값을 돌려준다.<ref name="논리연산자의 역사"/> C언어의 영향을 받은 프로그래밍 언어에서는 일반적으로 |를 논리합 연산자로 사용한다. 불 대수에서는 OR는 덧셈과 동치여서, 논리합(Boolean Addition)으로 부른다. 아래에서 보듯 1 + 1 = 1 임을 주의해야 한다. A+B로 표시한다.<br><br> | ||
OR 연산자는 두 개의 수직선 기호로 만들 수 있다.<ref name="논리연산자 종류">〈[https://ko.javascript.info/logical-operators 논리 연산자 종류]〉, 《JS》, 2020-01-08</ref><br> | OR 연산자는 두 개의 수직선 기호로 만들 수 있다.<ref name="논리연산자 종류">〈[https://ko.javascript.info/logical-operators 논리 연산자 종류]〉, 《JS》, 2020-01-08</ref><br> | ||
전통적인 프로그래밍에서 OR 연산자는 불린값을 조작하는 데 쓰인다. 인수 중 하나라도 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. | 전통적인 프로그래밍에서 OR 연산자는 불린값을 조작하는 데 쓰인다. 인수 중 하나라도 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. | ||
− | + | ||
− | + | :{|class=wikitable width=300 style="background-color:white" | |
− | + | |+ | |
− | + | !align=center colspan="2"|AND 연산 결과 | |
+ | |- | ||
+ | |align=center|입력값 | ||
+ | |align=center|반환값 | ||
+ | |- | ||
+ | |align=center|0, 0 | ||
+ | |align=center|1 | ||
+ | |- | ||
+ | |align=center|0, 1 | ||
+ | |align=center|1 | ||
+ | |- | ||
+ | |align=center|1, 0 | ||
+ | |align=center|1 | ||
+ | |- | ||
+ | |align=center|1, 1 | ||
+ | |align=center|1 | ||
+ | |- | ||
+ | |} | ||
==== 논리곱 (AND; &&) ==== | ==== 논리곱 (AND; &&) ==== | ||
− | 두 개의 앰퍼샌드를 연달아 쓰면 AND 연산자 &&를 만들 수 있다.<br> | + | 두 명제가 모두 참이어야 참값을 돌려준다.<ref name="논리연산자의 역사"/> C언어의 영향을 받은 프로그래밍 언어에서는 일반적으로 &를 논리곱 연산자로 사용하며, 불 대수에서는 AND는 곱셈과 동치이다. 불 곱(Boolean Multiplication) 혹은 논리곱이라 부른다. 아래의 연산결과를 보면 왜 곱셈과 동치인지 쉽게 알 수 있을 것이다. AB 또는 A·B로 표시한다.<br><br> |
+ | 두 개의 앰퍼샌드를 연달아 쓰면 AND 연산자 &&를 만들 수 있다.<ref name="논리연산자 종류"/><br> | ||
전통적인 프로그래밍에서 AND 연산자는 두 피연산자가 모두가 참일 때 true를 반환한다. 그 외의 경우는 false를 반환한다. | 전통적인 프로그래밍에서 AND 연산자는 두 피연산자가 모두가 참일 때 true를 반환한다. 그 외의 경우는 false를 반환한다. | ||
− | + | ||
− | + | :{|class=wikitable width=300 style="background-color:white" | |
− | + | |+ | |
− | + | !align=center colspan="2"|AND 연산 결과 | |
+ | |- | ||
+ | |align=center|입력값 | ||
+ | |align=center|반환값 | ||
+ | |- | ||
+ | |align=center|0, 0 | ||
+ | |align=center|0 | ||
+ | |- | ||
+ | |align=center|0, 1 | ||
+ | |align=center|0 | ||
+ | |- | ||
+ | |align=center|1, 0 | ||
+ | |align=center|0 | ||
+ | |- | ||
+ | |align=center|1, 1 | ||
+ | |align=center|1 | ||
+ | |- | ||
+ | |} | ||
==== 부정 (NOT; !) ==== | ==== 부정 (NOT; !) ==== | ||
말 그대로 부정(否定)이다.<ref name="논리연산자의 역사"/> 즉, 참과 거짓을 뒤집는다. C언어의 영향을 받은 프로그래밍 언어에서는 일반적으로 !를 부정 연산자로 사용하며, 그 외에 ~A도 많은 프로그래밍 언어에서 사용되며, 필기나 서적 등에서는 A' [3]또는 A 위에 ㅡ를 그려넣은 <math>\bar{A} </math> 기호가 주로 쓰인다. 불 보수(Boolean Complement)로도 불린다. 이 연산을 하는 회로는 따로 보수기(inverter)라는 이름으로 불린다. | 말 그대로 부정(否定)이다.<ref name="논리연산자의 역사"/> 즉, 참과 거짓을 뒤집는다. C언어의 영향을 받은 프로그래밍 언어에서는 일반적으로 !를 부정 연산자로 사용하며, 그 외에 ~A도 많은 프로그래밍 언어에서 사용되며, 필기나 서적 등에서는 A' [3]또는 A 위에 ㅡ를 그려넣은 <math>\bar{A} </math> 기호가 주로 쓰인다. 불 보수(Boolean Complement)로도 불린다. 이 연산을 하는 회로는 따로 보수기(inverter)라는 이름으로 불린다. | ||
− | 논리 연산자 NOT은 느낌표 !를 써서 만들 수 있다.<br> | + | 논리 연산자 NOT은 느낌표 !를 써서 만들 수 있다.<br><br> |
− | NOT 연산자는 인수를 하나만 받고, 다음 순서대로 연산을 수행한다.<br> | + | NOT 연산자는 인수를 하나만 받고, 다음 순서대로 연산을 수행한다.<ref name="논리연산자 종류"/><br> |
1. 피연산자를 불린형(true / false)으로 변환한다.<br> | 1. 피연산자를 불린형(true / false)으로 변환한다.<br> | ||
2. 1에서 변환된 값의 역을 반환한다. | 2. 1에서 변환된 값의 역을 반환한다. | ||
44번째 줄: | 80번째 줄: | ||
!align=center colspan="2"|NOT 연산 결과 | !align=center colspan="2"|NOT 연산 결과 | ||
|- | |- | ||
− | |align=center| | + | |align=center|입력값 |
− | |align=center| | + | |align=center|반환값 |
|- | |- | ||
− | |align=center| | + | |align=center|0 |
− | |align=center| | + | |align=center|1 |
|- | |- | ||
− | |align=center| | + | |align=center|1 |
− | |align=center| | + | |align=center|0 |
|- | |- | ||
|} | |} | ||
− | + | ==== 진리표 ==== | |
− | |||
− | |||
:{|class=wikitable width=700 style="background-color:white" | :{|class=wikitable width=700 style="background-color:white" | ||
|+ | |+ |
2020년 8월 10일 (월) 09:36 판
논리 연산(logical operation, logical connective) 혹은 불 연산(boolean operation)은 진리값으로 불리는 참, 거짓 두 가지 원소만 존재하는 집합(환으로 불림)에서의 연산이다. 논리합(OR, ∨), 논리곱(AND, ∧), 부정(NOT, ~/¬), 배타적 논리합(XOR, ⊕), 명제, 동치 등이 있다. 수학의 논리학이나 프로그래밍 언어에서 사용한다. 프로그래밍 언어에서는 비트연산이라고도 한다.
목차
개요
논리식을 구성하는 요소이며 부정이나 논리곱, 논리합 등을 들 수 있다. 즉, 하나 또는 그 이상의 오퍼랜드에 적용되는 논리 기능을 갖는 단어나 기호. 부정이라 부르는 단항 연산에서는 오퍼랜드의 앞에 오지만 2항 연산에서는 오퍼랜드 중간에 온다.
[1]
등장배경/역사
불 대수(Boolean algebra)는 19세기 중반 영국의 수학자 조지 불(George Boole, 1815년 11월 2일 ~ 1864년 12월 8일)이 고안하고 형식화한 대수 체계를 의미한다.[2]
논리 연산(logical operation, logical connective)으로도 불린다. 수리 논리학이나 컴퓨터공학과에서, 두 개의 상태인 참(1, T, True)과 거짓(0, F, False)으로 불 연산(Boolean expression)이라 한다. 불 대수의 출현 이후로 논리학은 기호논리학의 성향이 강해지기 시작한다.
프로그래밍에서는 조건에 의한 분기나 반복을 만드는 데 이용되고, 디지털 논리 회로를 배울 때 유용하게 사용된다. 디지털 회로의 신호는 0과 1로만 구성되어 있기 때문이다. 전자계통에선 논리 연산을 하는 소자를 게이트(Gate)라고 하며 트랜지스터 여러 개를 조합해서 만들 수 있다.
이산수학에서는 속(Lattice) 중 Complementary Lattice이며 Distributive Lattice인 Lattice를 불 속(Boolean Lattice)이라 하며 이를 대수(Algebra)식으로 나타낸 것을 불 대수(Boolean Algebra)라고 한다. 불 속의 원소 개수는 해당 원자(atom) 개수 n에 대해 2n개이다. 즉, 불 속의 원소 개수는 2의 제곱수대로 올라간다고 보면 된다.
특징
종류
논리합(OR; ||)
두 명제 중 어느 한 명제만 참이어도 참값을 돌려준다.[2] C언어의 영향을 받은 프로그래밍 언어에서는 일반적으로 |를 논리합 연산자로 사용한다. 불 대수에서는 OR는 덧셈과 동치여서, 논리합(Boolean Addition)으로 부른다. 아래에서 보듯 1 + 1 = 1 임을 주의해야 한다. A+B로 표시한다.
OR 연산자는 두 개의 수직선 기호로 만들 수 있다.[3]
전통적인 프로그래밍에서 OR 연산자는 불린값을 조작하는 데 쓰인다. 인수 중 하나라도 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
AND 연산 결과 입력값 반환값 0, 0 1 0, 1 1 1, 0 1 1, 1 1
논리곱 (AND; &&)
두 명제가 모두 참이어야 참값을 돌려준다.[2] C언어의 영향을 받은 프로그래밍 언어에서는 일반적으로 &를 논리곱 연산자로 사용하며, 불 대수에서는 AND는 곱셈과 동치이다. 불 곱(Boolean Multiplication) 혹은 논리곱이라 부른다. 아래의 연산결과를 보면 왜 곱셈과 동치인지 쉽게 알 수 있을 것이다. AB 또는 A·B로 표시한다.
두 개의 앰퍼샌드를 연달아 쓰면 AND 연산자 &&를 만들 수 있다.[3]
전통적인 프로그래밍에서 AND 연산자는 두 피연산자가 모두가 참일 때 true를 반환한다. 그 외의 경우는 false를 반환한다.
AND 연산 결과 입력값 반환값 0, 0 0 0, 1 0 1, 0 0 1, 1 1
부정 (NOT; !)
말 그대로 부정(否定)이다.[2] 즉, 참과 거짓을 뒤집는다. C언어의 영향을 받은 프로그래밍 언어에서는 일반적으로 !를 부정 연산자로 사용하며, 그 외에 ~A도 많은 프로그래밍 언어에서 사용되며, 필기나 서적 등에서는 A' [3]또는 A 위에 ㅡ를 그려넣은 기호가 주로 쓰인다. 불 보수(Boolean Complement)로도 불린다. 이 연산을 하는 회로는 따로 보수기(inverter)라는 이름으로 불린다.
논리 연산자 NOT은 느낌표 !를 써서 만들 수 있다.
NOT 연산자는 인수를 하나만 받고, 다음 순서대로 연산을 수행한다.[3]
1. 피연산자를 불린형(true / false)으로 변환한다.
2. 1에서 변환된 값의 역을 반환한다.
NOT 연산 결과 입력값 반환값 0 1 1 0
진리표
A B A and B(A&&B) A or B A xor B !A[4]
true true true true false false true false false true true false false true false true true true false false false false false true
활용
각주
참고자료
같이 보기