문서의 각 단락이 어느 리비전에서 마지막으로 수정되었는지 확인할 수 있습니다. 왼쪽의 정보 칩을 통해 작성자와 수정 시점을 파악하세요.

NOT | |
정의 | 부정 논리 연산자 |
기호 | ¬, !, ~ |
논리적 의미 | 명제의 진리값을 반대로 바꿈 |
진리표 | 입력이 참이면 거짓을 출력 입력이 거짓이면 참을 출력 |
사용 분야 | 수리 논리학 컴퓨터 과학 전자 공학 철학 |
상세 정보 | |
다른 이름 | 부정 논리적 부정 보수 |
프로그래밍 언어별 표현 | C, C++, Java, JavaScript 등: ! Python, Ruby 등: not 일부 수학 및 논리학 문헌: ¬, ~ |
전자 공학에서의 구현 | 인버터(Inverter) 회로로 구현 |
관련 연산자 | 논리곱(AND) 논리합(OR) 배타적 논리합(XOR) |

NOT은 논리학, 컴퓨터 과학, 전자 공학 등 다양한 분야에서 사용되는 기본적인 부정 논리 연산자이다. 이 연산은 주어진 명제나 입력의 진리값을 반대로 바꾸는 기능을 수행한다. 즉, 참(True)을 거짓(False)으로, 거짓을 참으로 뒤집는다. 이는 가장 단순한 형태의 논리 연산 중 하나로, 다른 복잡한 논리 연산의 기초를 이룬다.
NOT 연산은 기호로 ¬, !, ~ 등으로 표기된다. 그 진리표는 매우 직관적이다. 입력이 참이면 출력은 거짓이 되고, 입력이 거짓이면 출력은 참이 된다. 이러한 단순하면서도 강력한 특성 덕분에 수리 논리학에서 명제의 부정을 표현하고, 디지털 회로에서 논리 게이트를 구성하며, 프로그래밍 언어에서 조건을 반전시키는 데 널리 활용된다.

논리 연산에서 NOT 연산자의 동작을 명확히 보여주는 도구가 진리표이다. 진리표는 가능한 모든 입력값에 대해 연산의 출력값을 표 형태로 정리한 것이다.
NOT 연산은 단일 입력을 가지는 단항 연산으로, 그 진리표는 매우 간단하다. 입력 명제 P의 진리값이 참일 때, NOT P의 결과는 거짓이 된다. 반대로 입력 P의 진리값이 거짓일 때, NOT P의 결과는 참이 된다. 이는 NOT 연산의 핵심인 '부정' 또는 '반전'의 의미를 그대로 나타낸다.
입력 P | 출력 ¬P |
|---|---|
참 | 거짓 |
거짓 | 참 |
이 진리표는 NOT 연산이 입력의 진리값을 정반대로 뒤집는 함수임을 보여준다. 따라서 NOT 연산자를 적용한 명제는 원래 명제와 논리적으로 정반대가 된다. 이 기본적인 진리표는 더 복잡한 논리 회로나 복합 명제를 분석할 때의 기초가 된다.
논리 연산자 NOT은 단항 연산자로서, 주어진 명제의 진리값을 반전시키는 기본적인 기능을 가진다. 이 연산은 논리적 부정의 핵심을 이루며, 명제 논리와 술어 논리의 기본 구성 요소로 작용한다. NOT 연산을 적용한 명제는 원래 명제의 부정 명제가 되며, 이는 일상 언어에서 "~이 아니다"라는 표현에 해당한다.
NOT 연산의 가장 중요한 논리적 특성은 멱등성을 가진다는 점이다. 즉, 동일한 명제에 NOT 연산을 두 번 연속으로 적용하면 원래 명제의 진리값으로 돌아간다. 이는 논리식으로 ¬(¬P) ≡ P 로 표현되며, 이중 부정의 법칙으로 알려져 있다. 또한 NOT 연산은 드 모르간의 법칙을 통해 AND 연산 및 OR 연산과 밀접한 관계를 맺는다. 이 법칙에 따르면, 두 명제의 논리곱에 대한 부정은 각 명제의 부정의 논리합과 논리적으로 동등하며, 그 반대의 경우도 성립한다.
NOT 연산자는 다른 복합 논리 연산을 구성하는 데 필수적이다. 예를 들어, 함축 연산(→)은 일반적으로 ¬P ∨ Q 와 같이 NOT과 OR을 사용하여 정의할 수 있다. 또한 배중률은 어떤 명제 P에 대하여 P ∨ ¬P가 항상 참임을 주장하는데, 이는 NOT 연산의 존재를 전제로 하는 원리이다. 이러한 특성들로 인해 NOT 연산은 불 대수와 디지털 회로 설계의 근간을 이루는 연산 중 하나로 자리 잡았다.
NOT 연산자는 다른 기본적인 논리 연산자들과 결합하여 더 복잡한 논리 표현을 구성하는 데 핵심적인 역할을 한다. 특히 AND 연산자와 OR 연산자와의 관계에서 드 모르간의 법칙이 중요한데, 이 법칙은 NOT 연산자가 논리식 전체에 분배될 때의 규칙을 정립한다. 예를 들어, 두 명제의 논리곱에 대한 부정은 각 명제의 부정의 논리합과 논리적으로 동등하다. 이는 집합론에서 여집합의 개념과도 직결된다.
NOT 연산자는 조건문이나 쌍조건문과 같은 다른 연산자의 정의에도 사용된다. 예를 들어, "P이면 Q이다"라는 조건문은 "P가 참이고 Q가 거짓인 경우"를 제외한 모든 경우에 참이 되는데, 이는 "P AND (NOT Q)"가 거짓인 경우와 동치이다. 이러한 변환은 논리 증명이나 디지털 회로의 간소화에서 유용하게 활용된다.
또한, NAND 게이트와 NOR 게이트는 각각 AND와 OR 게이트의 출력에 NOT 연산을 결합한 유니버설 게이트이다. 흥미롭게도 NAND 게이트 하나만으로 모든 다른 논리 게이트(AND, OR, NOT 등)를 구현할 수 있어, 디지털 논리 설계의 기본 구성 요소로 널리 사용된다. 이는 NOT 연산이 다른 연산과 결합될 때 갖는 강력한 표현력을 보여준다.

논리 연산자인 NOT은 프로그래밍 언어마다 다양한 기호로 표기된다. 가장 일반적으로 사용되는 기호는 느낌표(!)이며, C와 자바, 자바스크립트 등 많은 현대 언어에서 채택하고 있다. 논리학에서 전통적으로 사용되는 기호는 ¬이다. 또한 비트 연산을 수행하는 비트 NOT 연산자로는 물결표(~)가 널리 쓰인다.
일부 프로그래밍 언어는 키워드를 사용하여 NOT 연산을 표현하기도 한다. 예를 들어, 파스칼에서는 not이라는 예약어를 사용하며, SQL에서도 NOT 키워드를 논리 연산에 활용한다. 비주얼 베이직 계열 언어에서는 Not 키워드를 사용한다.
이 연산자는 단항 연산자로, 하나의 피연산자 앞에 위치하여 그 값의 진리값을 반전시킨다. 논리식에서 !A는 "A가 아니다" 또는 "A의 부정"을 의미하며, 조건문과 반복문의 제어 흐름을 결정하는 데 핵심적인 역할을 한다.
비트 NOT 연산은 이진수로 표현된 데이터의 각 비트를 반전시키는 단항 연산이다. 이 연산은 논리 연산의 일종으로, 논리 회로와 컴퓨터 프로그래밍에서 널리 사용된다. 비트 NOT은 주어진 비트 패턴에서 0은 1로, 1은 0으로 변환하며, 이는 진리값의 부정 개념을 비트 단위로 확장한 것이다.
대부분의 프로그래밍 언어에서는 비트 NOT 연산을 위해 틸드(~) 기호를 사용한다. 예를 들어, 8비트 이진수 00101101(십진수 45)에 비트 NOT 연산을 적용하면 결과는 11010010(십진수 -46, 2의 보수 표현에서)이 된다. 이 연산은 데이터의 모든 비트를 개별적으로 처리하기 때문에 마스킹이나 비트 플래그를 반전시키는 데 유용하게 활용된다.
비트 NOT 연산은 논리 NOT 연산과 구별된다. 논리 NOT은 불린 자료형의 참(True) 또는 거짓(False) 값을 반대로 바꾸는 반면, 비트 NOT은 정수형 데이터의 내부 이진 표현을 직접 변조한다. 따라서 프로그래밍에서 ~ 연산자는 일반적으로 정수형에, ! 연산자는 불린 값에 적용된다.
이 연산의 주요 활용 분야는 저수준 프로그래밍, 임베디드 시스템, 그리고 암호학 등이다. 특히 비트마스크를 이용한 플래그 제어나, 보수를 이용한 특정 계산에서 핵심적인 역할을 한다.
논리 NOT 연산은 논리학과 컴퓨터 과학에서 가장 기본적인 단항 연산자이다. 이 연산자는 주어진 명제나 논리값의 진리값을 반대로 뒤집는 역할을 한다. 즉, 입력이 참(True)이면 거짓(False)을 결과로 내고, 입력이 거짓이면 참을 결과로 낸다. 이러한 단순하면서도 근본적인 특성 때문에 NOT 연산은 다른 모든 복잡한 논리 연산의 구성 요소가 된다.
논리 NOT 연산은 다양한 기호로 표기된다. 수리 논리학에서는 주로 ¬P 또는 ~P 형식을 사용하며, 프로그래밍 언어와 디지털 논리 설계에서는 주로 !P나 P'와 같은 기호가 사용된다. 이 연산의 동작은 진리표를 통해 명확히 정의된다. 진리표는 입력값과 그에 따른 출력값을 나열한 표로, NOT 연산의 경우 매우 간단하다. 입력이 거짓(0)일 때 출력은 참(1)이 되고, 입력이 참(1)일 때 출력은 거짓(0)이 된다.
이 연산의 논리적 특성은 자기 자신에 대한 이중 적용을 통해 확인할 수 있다. 어떤 명제 P에 NOT 연산을 두 번 적용하면, 즉 ¬(¬P)는 원래 명제 P와 논리적으로 동등하다. 이는 부정의 부정이 긍정이 되는 일상 언어의 현상을 논리적으로 형식화한 것이다. 또한 NOT 연산은 드 모르간의 법칙을 통해 논리곱(AND) 및 논리합(OR) 연산과 깊은 관계를 맺고 있으며, 복합 명제의 부정을 단순화하는 데 핵심적인 역할을 한다.
논리 NOT 연산은 순수 논리학을 넘어 이진법 시스템을 기반으로 하는 디지털 회로와 컴퓨터 프로그래밍의 근간을 이룬다. 논리 게이트 중 인버터(Inverter)라고 불리는 NOT 게이트는 이 논리 연산을 물리적으로 구현한 것으로, 모든 디지털 시스템의 기본 구성 요소이다. 또한 프로그래밍에서 조건문의 흐름을 제어하거나 부울 대수식을 평가하는 데 필수적으로 사용된다.

논리학과 컴퓨터 과학, 전자공학 등에서 부정 논리 연산자를 나타내는 기호는 여러 가지가 사용된다. 가장 대표적인 기호는 수리 논리학에서 공식적으로 쓰이는 ¬(U+00AC)이다. 이 기호는 명제 앞에 붙여 그 명제의 진리값을 반대로 바꾸는 단항 연산자임을 나타낸다.
프로그래밍 언어에서는 주로 느낌표 !를 논리 NOT 연산자로 사용한다. 예를 들어, C 언어나 자바 계열의 언어에서 !true는 false를 결과로 낸다. 한편, 비트 NOT 연산을 나타낼 때는 물결표 ~를 사용하는 경우가 많다. 이는 이진수의 각 비트를 반전시키는 연산에 해당한다.
전자공학의 논리 회로 설계에서는 NOT 게이트를 나타내는 독자적인 논리 기호가 있다. 가장 일반적인 기호는 삼각형과 출력 측의 작은 원(버블)을 조합한 형태로, 입력 신호의 논리 레벨을 반전시켜 출력함을 시각적으로 표현한다. 이러한 기호 표준은 집적 회로의 데이터시트나 디지털 회로 설계도에서 널리 활용된다.
NOT 게이트의 동작 원리는 입력 신호의 상태를 반전시키는 것이다. 디지털 논리 회로에서 입력으로 논리 레벨 1(높은 전압, 참)이 들어오면 출력은 논리 레벨 0(낮은 전압, 거짓)이 되고, 반대로 입력이 0이면 출력은 1이 된다. 이는 진리표로 간단히 표현되며, 모든 디지털 회로의 기본 구성 요소 중 하나로 작동한다.
구체적인 구현은 트랜지스터와 같은 반도체 소자를 사용한다. 가장 기본적인 형태는 CMOS 기술을 이용한 회로로, PMOS 트랜지스터와 NMOS 트랜지스터 한 쌍으로 구성된다. 두 트랜지스터의 게이트는 함께 입력에 연결되고, 소스와 드레인은 서로 교차하여 출력을 형성한다. 입력이 낮을 때 PMOS가 켜져 출력이 높아지고, 입력이 높을 때 NMOS가 켜져 출력이 낮아지는 방식으로 논리 반전이 이루어진다.
이러한 물리적 구현은 집적 회로의 기초가 되며, 인버터라고도 불린다. NOT 게이트의 동작 원리는 부울 대수의 기본 법칙을 전기적 신호로 변환한 것으로, 더 복잡한 논리 게이트나 산술 논리 장치(ALU)와 같은 마이크로프로세서의 핵심 모듈을 구성하는 데 필수적이다.
집적 회로에서 NOT 게이트는 가장 기본적인 논리 게이트 중 하나로, 트랜지스터를 이용해 구현된다. 가장 일반적인 구현 방식은 CMOS 기술을 사용하는 것으로, 한 쌍의 PMOS 트랜지스터와 NMOS 트랜지스터를 연결하여 구성한다. 입력 신호가 낮은 전압(논리 0)일 때 PMOS 트랜지스터가 켜져 출력을 높은 전압(논리 1)으로 연결하며, 입력이 높은 전압일 때는 NMOS 트랜지스터가 켜져 출력을 낮은 전압으로 연결하여 논리적 부정을 수행한다.
이러한 CMOS 방식의 NOT 게이트는 정적 전력 소모가 거의 없고, 논리 레벨이 명확하며, 제조 공정에 잘 통합된다는 장점이 있다. 하나의 NOT 게이트는 보통 2개의 트랜지스터(PMOS 1개, NMOS 1개)로 구성되며, 인버터라고도 불린다. 수많은 NOT 게이트는 다른 논리 게이트와 함께 마이크로프로세서, 메모리, 주문형 반도체 등의 복잡한 디지털 집적 회로 칩 내부에 집약되어 모든 디지털 연산의 기초를 이룬다.
NOT 게이트의 물리적 구현은 TTL이나 ECL 같은 다른 반도체 논리 계열에서도 가능하지만, 전력 소모와 속도, 집적도의 균형 면에서 CMOS 기술이 현대 디지털 회로의 표준으로 자리 잡았다. 이 기본 구성 요소의 안정적인 동작은 더 복잡한 조합 논리 회로나 순차 논리 회로를 설계하는 토대가 된다.

명제의 부정은 주어진 명제의 진리값을 반대로 뒤집는 기본적인 논리 연산이다. 예를 들어, "지금 비가 온다"라는 명제 P가 참이라면, 이 명제의 부정 "지금 비가 오지 않는다"는 거짓이 된다. 이는 수리 논리학의 근간을 이루는 연산으로, 명제 논리에서 가장 단순한 논리 연결사 중 하나이다. 부정 연산은 다른 복잡한 논리 연산을 구성하는 데 필수적인 구성 요소로 작용한다.
부정의 기호로는 주로 ¬(논리 기호), ~(물결표), 또는 프로그래밍 언어에서 자주 쓰이는 !(느낌표)가 사용된다. 이 연산은 단항 연산자로, 하나의 명제에만 적용된다. 명제 P의 부정은 ¬P, ~P, 또는 !P와 같이 표기하며, P의 진리값이 참(True)이면 ¬P는 거짓(False)이 되고, P가 거짓이면 ¬P는 참이 된다. 이러한 동작은 진리표를 통해 명확히 정의된다.
수학적 증명과 추론에서 명제의 부정은 간접 증명법, 특히 귀류법의 핵심 도구로 활용된다. 어떤 명제를 증명하기 위해 그 명제의 부정이 참이라고 가정한 후 모순을 이끌어내는 방식이다. 또한, 집합론에서 어떤 집합 A에 대한 여집합의 개념은 명제의 부정과 논리적으로 동치이다. 즉, 원소 x가 집합 A에 속한다는 명제의 부정은 x가 A의 여집합에 속한다는 명제로 표현할 수 있다.
집합론에서의 여집합은 논리 연산자 NOT에 대응하는 개념이다. 주어진 전체집합 U 안에서 특정 부분집합 A가 있을 때, A에 속하지 않는 모든 원소들의 집합을 A의 여집합이라고 하며, 기호로는 A^c, A', 또는 ¬A 등으로 표기한다. 이는 논리학에서 명제 p에 대한 부정 ¬p와 동일한 역할을 하며, 집합 A의 특성이나 조건을 만족하지 않는 원소들을 모은 집합이다.
여집합의 연산은 드 모르간의 법칙을 통해 다른 집합 연산과 밀접하게 연결된다. 예를 들어, 두 집합 A와 B의 합집합의 여집합은 각 집합의 여집합의 교집합과 같으며, 반대로 교집합의 여집합은 각 여집합의 합집합과 같다. 이 법칙은 논리학에서 ¬(p ∨ q) ≡ (¬p ∧ ¬q)라는 관계에 정확히 대응한다.
여집합의 개념은 확률론과 측도론을 비롯한 다양한 수학 분야에서 기초적으로 활용된다. 특히, 어떤 사건이 일어나지 않는 경우를 나타내는 데 사용되며, 차집합 연산과도 밀접한 관련이 있다. 집합 A에 대한 여집합은 전체집합 U와 A의 차집합, 즉 U \ A로 정의할 수 있다.
컴퓨터 과학에서도 비트마스킹이나 집합 연산을 구현할 때 비트 단위의 NOT 연산을 통해 여집합 개념을 적용한다. 예를 들어, 특정 비트 플래그 집합에서 어떤 플래그들을 제외한 나머지를 선택하는 연산은 해당 비트들에 대한 NOT 연산 후 AND 연산을 수행하는 방식으로 구현될 수 있다.

일상 언어에서 부정문은 문장의 의미를 반대로 뒤집는 역할을 한다. 이는 논리학의 NOT 연산과 개념적으로 유사하다. 예를 들어, "비가 온다"라는 긍정문에 부정을 나타내는 요소(예: '아니다', '안', '-지 않다')를 추가하면 "비가 오지 않는다"라는 부정문이 만들어진다. 이러한 부정문 구성은 문장의 참(진리값)을 반전시키는 효과를 가진다.
부정문을 만드는 방식은 언어마다 다르다. 한국어에서는 주로 서술어에 '~지 않다', '안 ~'과 같은 보조용언이나 접속어미를 붙여 표현한다. 영어에서는 'not'이나 'no'와 같은 부사를 사용하며, 동사에 변화를 주기도 한다. 이러한 언어적 부정은 논리적 부정 연산의 일상적 표현으로 볼 수 있다.
검색 엔진이나 데이터베이스 쿼리에서 NOT 연산자는 특정 조건이나 키워드를 제외하는 데 사용되는 중요한 불리언 연산자이다. 이는 사용자가 원하지 않는 정보를 필터링하여 검색 결과의 정확도를 높이는 데 기여한다. 예를 들어, "자바"에 대한 정보를 찾되 "자바스크립트"와 관련된 내용은 제외하고 싶을 때 "자바 NOT 자바스크립트"와 같은 형식으로 검색어를 구성한다.
구체적인 활용 방식은 시스템에 따라 다르다. 일부 검색 엔진에서는 마이너스 기호(-)를 NOT 연산자로 사용하기도 한다(예: 자바 -자바스크립트). 데이터베이스 관리 시스템의 SQL에서는 NOT 키워드를 사용하여 조건을 부정하며, 전문 검색을 위한 쿼리 언어나 라이브러리 검색 시스템에서도 유사한 논리 연산이 지원된다. 이 연산자는 정보 검색과 데이터 마이닝 과정에서 노이즈를 줄이고 관련성 높은 결과를 추출하는 핵심 도구로 작동한다.

논리 연산자 중 NOT과 밀접하게 연관되거나 함께 사용되는 주요 개념이 있다. AND와 OR은 NOT과 함께 기본적인 논리 연산을 구성하며, 특히 드 모르간의 법칙은 NOT 연산이 AND와 OR 연산에 분배될 때의 규칙을 설명한다. 이 법칙에 따르면, 두 명제의 합집합에 대한 부정은 각 명제의 부정의 교집합과 같고, 두 명제의 교집합에 대한 부정은 각 명제의 부정의 합집합과 같다.
부울 대수는 NOT, AND, OR 같은 논리 연산을 수학적으로 다루는 체계이다. 디지털 회로 설계와 컴퓨터 과학의 기초가 되며, 여기서 NOT 게이트는 가장 기본적인 논리 게이트 중 하나로 취급된다. NAND 게이트와 NOR 게이트는 NOT 게이트가 AND 게이트나 OR 게이트와 결합된 유니버설 게이트로, 이론상 이들 게이트만으로 모든 다른 논리 게이트를 구성할 수 있다.
반전기는 전자공학에서 NOT 게이트의 기능을 수행하는 장치나 회로를 지칭하는 일반적인 용어이다. 한편, XOR 연산은 배타적 논리합으로, 두 입력이 다를 때 참을 출력하는데, 여기에 NOT 연산을 결합하면 동등성(XNOR)을 검사하는 연산이 된다. 프로그래밍 언어에서는 논리 NOT 연산자 외에도 비트 NOT 연산자가 있어 정수 데이터의 모든 비트를 반전시키는 역할을 한다.