Chap 02. 진수 변환 / BCD 코드 / Gray 코드

자습시간/디지털 논리회로

Chap 02. 진수 변환 / BCD 코드 / Gray 코드

semicon_circuitdesigner 2024. 3. 23. 17:32
728x90

1. 2진수 - 10진수 변환


  • 2진수 -> 10진수 변환 : 오른쪽부터 2^0, 2^1, 2^2, ... 순으로 각 자릿수의 숫자와 곱하여 변환
    • 예시)
       - 1 0011(2)인 이진수 -> 2^4 * 1 + 2^3 * 0 + 2^2 * 0 + 2^1 * 1 +  2^0 * 1 = 16 + 2 + 1 = 19(10)
       - 1011 0101(2) -> 2^7 + 2^5 + 2^4 + 2^2 + 2^0 = 128 + 32 + 16+ 4 + 1 = 181(10)
  • 10진수 -> 2진수 변환: 10진수를 2로 나누며 나머지를 구하여 2진수로 변환


2. 16진수: 2진수의 4비트씩 묶어 0~9, A(10)~F(15)의 16자리로 표현


[16진수, 10진수, 2진수의 관계]

  • 16진수 -> 10진수 변환: 2진수 -> 10진수 변환과 마찬가지로 각 자릿수에 16의 제곱을 곱하여 계산
    • 예시)
       - 2AF(16) = 16^2 * 2 + 16 * 10 + 15 * 1 = 512 + 160 + 15 = 687(10)
       - 356(16) = 16^2 * 3 + 16 * 5 + 15 * 6 = 768 + 80 + 6 = 854(10)
  • 10진수 -> 16진수 변환: 10진수 -> 2진수 변환과 마찬가지로 10진수를 16으로 나눠가며 나머지로 표현

 

  • 16진수 -> 2진수 변환: 숫자를 2진수로 나타내어 변환
    • 예시)
       - 9F2(16) = 1001 1111 0010(2)
       - BA6(16) = 1011 1010 0110(2)

9F2(16) 변환 예시

  • 2진수 -> 16진수 변환: LSB(가장 오른쪽 비트)부터 네자리씩 묶어 16진수로 변환(빈자리에는 0비트 추가)

1110100110(2) 변환 예시


3. BCD 코드


  • BCD(Binary Coded Decimal): 2진화 10진 코드
  • 10진수의 각 숫자를 2진수의 4비트 그룹으로 표현하는 방법
  • 10진수 -> BCD코드 예시
    • 874(10) -> 8(10) = 1000(2) / 7(10) = 0111(2) / 4(10) = 0100(2)
      -> 874(10) = 1000 0111 0100(BCD)
    • 943(10) = 1001 0100 0011(BCD)
  • BCD코드 -> 10진수 예시
    • 0110 1000 0011 1001(BCD) -> 0110(2) = 6(10) / 1000(2) = 8(10) / 0011(2) = 3(10) / 1001(2) = 9(10)
      -> 0110 1000 0011 1001(BCD) = 6839(10)
  • 각 4비트 그룹은 9를 넘지 말아야 함(9를 넘으면 오류 표시)

4. Gray 코드

  • 고속동작에서 유용하게 사용
  • 2진수 -> Gray 코드: 비트가 바뀔 때 숫자가 다르면 1, 같으면 0
    1. 2진수의 MSB는 그대로 Gray코드의 MSB
    2. 2진수의 두 번째 비트와 MSB가 같으면 Gray코드의 두 번째 비트 0, 다르면 1
    3. 2진수의 세 번째 비트와 두 번째 비트가 같으면 Gray코드의 두 번째 비트 0, 다르면 1
    4. ...
      예시) 1010(2) -> Gray 코드
  • Gray 코드 -> 2진수
    1. Gray 코드의 MSB는 그대로 2진수의 MSB
    2. Gray 코드의 MSB와 두 번째 비트가 같으면 2진수의 두 번째 비트 0, 다르면 1
    3. 2진수의 두 번째 비트와  Gray 코드의 세 번째 비트가 같으면 2진수의 세 번째 비트 0, 다르면 1
    4. ...
      예시) 11011(Gray) -> 2진수

[2진수, 16진수, BCD, Gray 변환]


5. Byte, Nibble, Word


  • 1Byte = 8 Bits
  • 1Nibble = 4Bits = 2/1Byte
  • 1Word: Bits의 그룹(운영체제에 따라 다름)
    • microporcessor: 1Word = 8bits
    • x86 PC: 1Word = 32Bits = 4Bytes
    • x53 PC: 1Word = 64Bits = 8Bytes

6. ASCII 코드


  • 가장 널리 쓰이는 Alphanumeric 코드
  • 7비트 코드

ASCII 코드

 


7. 데이터의 전송


  • ASCII 문자는 수신기가 처음과 끝을 식별할 수 있도록 프레임 필요
  • 프레임 표현 방법
    • 첫 비트는 논리값 0으로 시작 비트를 표현
    • ASCII 코드는 LSB가 먼저, MSB가 나중에 전송
    • MSB가 전송된 뒤에는 Parity Bit가 추가되어 전송 오류 검사
    • 마지막 비트는 논리값1로 정지 비트 표현
      데이터 전송 예시
728x90
반응형