논리 회로와 논리 게이트

Louie·2022년 1월 9일

논리 회로

  • 디지털 전자 신호에서는 강한 전류와 약한 전류 두 가지 방법만으로 작동한다.
  • 컴퓨터는 이 두 가지 방법을 참과 거짓으로 구분한다.
  • 예시는 테스트 코드로 대신하겠다.

논리 게이트

  • 논리 게이트는 논리 회로를 구성하는 가장 기본적인 요소이다.

1. or 게이트

  • 두 개의 입력값 중 하나라도 참이면 참을 반환한다.
@Test
void or() {
    assertTrue(Gate.or(true, true));
    assertFalse(Gate.or(false, false));
    assertTrue(Gate.or(true, false));
    assertTrue(Gate.or(false, true));
}

2. and 게이트

  • 두 개의 입력값 모두 참이면 참을 반환한다.
@Test
void and() {
    assertTrue(Gate.and(true, true));
    assertFalse(Gate.and(false, false));
    assertFalse(Gate.and(true, false));
    assertFalse(Gate.and(false, true));
}

3. inverter(not) 게이트

  • 입력받은 값의 반대값을 반환한다.
  • 한개의 값만 입력받는다.
  • not 게이트 라고도 부른다.
@Test
void and() {
    assertTrue(!false);
    assertFalse(!true);
}

nand 게이트

  • 두 입력값이 모두 참이면 거짓을 반환한다.
  • and 게이트의 결과에 not 게이트를 실행한 것과 결과가 동일하다.
@Test
void nand() {
    assertFalse(Gate.nand(true, true));
    assertTrue(Gate.nand(false, false));
    assertTrue(Gate.nand(true, false));
    assertTrue(Gate.nand(false, true));
}

xor 게이트

  • 두 입력값이 다르면 참을 반환한다.
  • nand 게이트의 결과에 or 게이트를 실행한 것과 결과가 동일하다.
@Test
void xor() {
    assertFalse(Gate.xor(true, true));
    assertFalse(Gate.xor(false, false));
    assertTrue(Gate.xor(true, false));
    assertTrue(Gate.xor(false, true));
}

참고 자료

profile
백엔드 개발자를 준비하고 있는 Louie입니다.

0개의 댓글