검수요청.png검수요청.png

논리연산자

해시넷
tjdgus399 (토론 | 기여)님의 2020년 8월 10일 (월) 09:16 판
이동: 둘러보기, 검색

논리 연산(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; ||)

OR 연산자는 두 개의 수직선 기호로 만들 수 있다.[3]
전통적인 프로그래밍에서 OR 연산자는 불린값을 조작하는 데 쓰인다. 인수 중 하나라도 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

if( true || true );   // true
if( false || true );  // true
if( true || false );  // true
if( false || false ); // false

논리곱 (AND; &&)

두 개의 앰퍼샌드를 연달아 쓰면 AND 연산자 &&를 만들 수 있다.
전통적인 프로그래밍에서 AND 연산자는 두 피연산자가 모두가 참일 때 true를 반환한다. 그 외의 경우는 false를 반환한다.

if( true && true );   // true
if( false && true );  // false
if( true && false );  // false
if( false && false ); // false

부정 (NOT; !)

말 그대로 부정(否定)이다.[2] 즉, 참과 거짓을 뒤집는다. C언어의 영향을 받은 프로그래밍 언어에서는 일반적으로 !를 부정 연산자로 사용하며, 그 외에 ~A도 많은 프로그래밍 언어에서 사용되며, 필기나 서적 등에서는 A' [3]또는 A 위에 ㅡ를 그려넣은 기호가 주로 쓰인다. 불 보수(Boolean Complement)로도 불린다. 이 연산을 하는 회로는 따로 보수기(inverter)라는 이름으로 불린다. 논리 연산자 NOT은 느낌표 !를 써서 만들 수 있다.
NOT 연산자는 인수를 하나만 받고, 다음 순서대로 연산을 수행한다.
1. 피연산자를 불린형(true / false)으로 변환한다.
2. 1에서 변환된 값의 역을 반환한다.

NOT 연산 결과
true true
true false
false true
if( !true ); // false
if( !0 ); // true
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

활용

각주

  1. 논리연산자란〉, 《네이버 지식백과》
  2. 2.0 2.1 논리연산자의 역사〉, 《나무위키》
  3. 논리 연산자 종류〉, 《JS》, 2020-01-08
  4. 진리표〉, 《TCPSCHOOL》

참고자료

같이 보기


  검수요청.png검수요청.png 이 논리연산자 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.