[디지털 논리] 1/2/3장(수의 체계, 디지털 코드)

[디지털 논리] 1/2/3장(수의 체계, 디지털 코드)

Book Title : 처음 만나는 디지털 논리회로
Author : 임석구, 홍경오
Publisher : 한빛아카데미

1장 2장은 나중에 추가

3. 디지털 코드


3.1 숫자 코드


BCD 코드

  • 10진수를 2진화한 코드(8421코드)
  • 표기는 2진수지만 의미는 10진수
  • 0(0000) ~ 9(1001)까지 범위만 사용
  • 1024를 표현하고 싶다면 4비트 4개로 각 자리를 표현
  • ex) 196 = 0010 0011 0111
  • 계산 결과 9(1001)초과 시 6(0110)을 더해서 보정

3초과 코드

  • BCD코드로 표현된 값에 3을 더해준 값.
  • 자기 보수의 성질(자보수 코드)
  • 가중치 코드는 아님!

다양한 2진 코드

  • 가중치 코드
    • 각 2진수 자리에 고정된 수를 가지고 있는 코드
    • 8421, 2421, 84-2-1코드 등
  • 비가중치 코드
    • 각 2진수 자리에 고정된 수가 없는 코드
    • 데이터 변환과 같은 특수한 용도로 쓰임
    • 3초과 코드, 그레이 코드

그레이 코드

  • ADC나 입출력 장치 코드로 주로 쓰임.
  • 2진수와 비교했을 때 최상위 비트는 그대로 쓰고 뒷 3자리는 전 비트와 XOR연산

그레이 코드 변환

연속되는 숫자의 비트가 하나씩 밖에 차이나지 않아서 오차가 적다.


BCD코드, 2421코드, 84-2-1코드 = 가중치 코드
3초과 코드, 2421코드, 84-2-1코드 = 자보수 코드


3.2 에러 검출 코드


패리티 비트

  • 짝수패리티 : 데이터에서 1의 개수를 짝수로 맞춤
  • 홀수패리티 : 데이터에서 1의 개수를 홀수로 맞춤
  • 에러가 짝수개(2개, 4개…) 발생하면 검출하지 못함
  • 에러 검출기
    • 짝패 : y = 0(에러 없음), y = 1(에러 발생)
    • 홀패 : y = 1(에러 없음), y = 0(에러 발생)
      패리티 비트

병렬 패리티

  • 패리티 비트를 하나만 사용하면 에러 검출은 가능하지만 정정할 수는 없기 때문에 가로와 세로에 대해 패리티를 검사하면 에러가 발생한 블록을 특정해낼 수 있다.
    병렬 패리티 비트

해밍 코드(에러 정정 코드) 꼭 나옴

  • 에러를 정정할 수 있는 코드
  • 추가적으로 많은 비트가 필요하므로 많은 양의 데이터 전달이 필요
  • 패리티 비트가 앞에서부터 1, 2, 4, 8, 16,…의 위치에 들어간다.
  • P8부터 P1까지 읽어서 오류 비트의 인덱스를 알 수 있다.
  • Pn이 모두 0(오류 없음)이면 오류 없음
  • 마찬가지로 오류 비트가 하나일 때만 사용 가능
  • 매우 매우 매우 매우 매우 중요
    해밍 코드

3.3 문자 코드


ASCII 코드

  • ANSI가 제정한 정보 교환용 미국 표준 코드
  • 128가지의 문자 표현 가능
  • 8비트 중 맨 앞자리는 패리티 비트
  • 다음 3비트는 존(zone), 다음 4비트가 디지트(digit)
    표준 아스키코드표

    패리티 비트 내다버리고 확장 ASCII코드를 만들 수 있다.


표준 BCD 코드

  • 6비트로 영문자까지 표현
  • 최대 64문자까지 표현 가능

EBCDIC 코드

  • 대형 컴퓨터와 IBM 계열에서 많이 사용함
  • ASCII와 호환을 위해 8비트 코드 사용
  • 256종류의 문자 코드를 표현 가능
  • 하지만 코드표를 보면 많이 비어있음.

유니코드

  • ASCII의 한계 극복하기 위해 개발된 국제 표준.
  • UTF-8, 16, 32 (일반적으로 판을 나눠서 16사용)

한글코드

  • 조합형
    • 때에 따라 다른응용프로그램에서 못씀
    • 자음과 모음으로 조합 가능한 모든 한글을 사용할 수 있음
    • 고어 까지 취급할 수 있음
    • 하지만 출력 시 다시 계산해야됨
  • 완성형
    • 표준
    • 초성, 중성, 종성으로 안 나누고 글자 단위로 처리