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

"논리연산자"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
1번째 줄: 1번째 줄:
'''논리 연산'''(logical operation, logical connective) 혹은 '''불 연산'''(boolean operation)은 진리값으로 불리는 참, 거짓 두 가지 원소만 존재하는 집합(환으로 불림)에서의 연산이다. [[논리합]](OR, ∨), [[논리곱]](AND, ∧), [[부정]](NOT, ~/¬), 배타적 논리합(XOR, ⊕), 명제, 동치 등이 있다. 수학의 [[논리학]]이나 [[프로그래밍 언어]]에서 사용한다. 프로그래밍 언어에서는 비트연산이라고도 한다.
+
'''논리 연산'''(logical operation, logical connective) 혹은 '''불 연산'''(boolean operation)은 진리값으로 불리는 참, 거짓 두 가지 원소만 존재하는 집합(환으로 불림)에서의 연산이다. [[논리합]](OR, ∨), [[논리곱]](AND, ∧), [[논리부정]](NOT, ~/¬), 배타적 논리합(XOR, ⊕), 명제, 동치 등이 있다. 수학의 [[논리학]]이나 [[프로그래밍 언어]]에서 사용한다. 프로그래밍 언어에서는 비트연산이라고도 한다.
  
 
==개요==
 
==개요==

2020년 8월 10일 (월) 15:08 판

논리 연산(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의 제곱수대로 올라간다고 보면 된다.

특징

AND (&&)

&&는 좌항과 우항의 값이 모두 참(true)일 때 참이 된다. And라고 읽는다. 다음 예제를 보자. 결과는 1이다. and의 좌우항이 모두 true인 것은 첫 번째 조건문 밖에 없기 때문이다.

if (true && true) {
    System.out.println(1);
}

if (true && false) {
    System.out.println(2);
}

if (false && true) {
    System.out.println(3);
}

if (false && false) {
    System.out.println(4);
}
  • 1 출력

OR (||)

||(or)는 좌우항 중에 하나라도 true라면 전체가 true가 되는 논리 연산자다. 다음 예를 보자. 결과는 1,2,3이 출력된다. 마지막 조건문의 or는 좌항과 우항이 모두 false이기 때문에 false가 된다.

if (true || true) {
    System.out.println(1);
}

if (true || false) {
    System.out.println(2);
}

if (false || true) {
    System.out.println(3);
}

if (false || false) {
    System.out.println(4);
}
  • 1, 2, 3 출력

NOT (!)

!는 부정의 의미로 not이라고 읽는다. Boolean의 값을 역전시키는 역할을 한다. true에 !를 붙으면 false가 되고 false에 !을 붙이면 true가 된다. [3]

if (!true) {
    System.out.println(1);
}
if (!false) {
    System.out.println(2);
}
  • 2 출력

각주

  1. 논리연산자란〉, 《네이버 지식백과》
  2. 논리연산자의 역사〉, 《나무위키》
  3. 논리연산자 java 코드〉, 《생활코딩》

참고자료

같이 보기


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