ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 디지털 코드 - BCD코드, 3초과코드, 2진코드, 그레이코드, 에러검출코드, 영숫자코드 etc.
    > Information Security/논리회로설계 2010. 9. 29. 22:05
    BCD코드(Binary Coded Decimal code : 2진화 10진코드)

     10진수  BCD코드  10진수 BCD코드   10진수  BCD코드
     0  0000  10  0001 0000  20  0010 0000
     1  0001  11  0001 0001  31  0011 0001
     2  0010  12  0001 0010  42  0100 0010
     3  0011  13  0001 0011  53  0101 0011
     4  0100  14  0001 0100  64  0110 0100
     5  0101  15  0001 0101  75  0111 0101
     6  0110  16  0001 0110  86  1000 0110
     7  0111  17  0001 0111  97  1001 0111
     8  1000  18  0001 1000  196  0001 1001 0110
     9  1001  19  0001 1001  237  0010 0011 0111


    BCD 코드는 10진수를 0~9까지 2진화한 코드로 , 실제표기는 2진수지만 10진수처럼 사용한다.
    즉 1010~1111까지 (1010,1011,1100,1101,1110,1111) 6개는 사용하지 않는다.

    일반적으로, BCD코드는 10진 코드와 같은 방식으로 계산을 한다.
    예를들면,

    10진 덧셈              BCD 덧셈              10진 덧셈              BCD 덧셈
           6                      0110                         42                 0100 0010
    +     3                  +   0011                   +    27                +0010 0111 
           9                      1001                         69                 0110 1001

    과 같지만,

    계산결과가 BCD코드를 벗어나는, 즉 9를 초과하게 되는 경우에는 계산 결과에 6(BCD : 0110)을 더해준다.

    10진 덧셈              BCD 덧셈   
            8                      1000
    +      7                   +  0111  
          15                       1111
                                +  0110   
                             0001 0101





    3초과 코드

    3초과 코드(excess -3code) 는 BCD 코드로 표현한 값에 3(=0011)을 더하여 나타낸 코드이다.

    ex)

     10진수 BCD코드 3초과코드 
     0  0000  0011 
     1  0001  0100
     2  0010  0101








    그레이코드 (Gray code)

    그레이 코드에는 가중치가 없기 때문에 연산에는 부적절하다.
    대신에, 아날로드-디지털 변환기(ADC)나 입출력장치 코드로 주로 사용된다.

    연속되는 코드들간에 한 비트만 변하여 새로운 코드가 되며, 입력코드로 사용하면 오차가 작아지는 특징이 있다.












    에러검출코드 - 패리티비트, 해밍코드

    1. 패리티비트

    에러 검출코드로 가장 간단하게 사용되는 것이 패리티비트(parity bit)를 사용한 코드이다.
    일반적으로 컴퓨터 내부, 특히 주기억장치에서 사용한다.
    메모리에 저장하거나 전달할 데이터에 패리티를 붙여서 전송한다.
    패리티에는 크게 짝수패리티( even parity :  1의 계수가 짝수로 )홀수패리티( odd parity : 1의 계수가 홀수로 )가 있다.

    단지 패리티는 에러가 있는지 검출할 뿐이며, 여러 비트에 에러가 발생하면 검출이 안되는 경우도 있다.
    패리티비트 하나를 사용할 경우, 에러검출만 할 수 있고, 정정은 불가능하다.
    이를 해결하기 위하여 패리티를 블록 데이터에 적용하는데, 가로와 세로 데이터들에 패리티를 적용하면 에러를 검출하여 위치를 정정할 수 있는데 이것을 병렬 패리티 (parallel parity) 라고 한다.

    - 짝수 패리티 Y=1 에러발생 , Y=0 에러발생 X
    - 홀수 패리티 Y=1 에러발생X, Y=0 에러발생








    2. 해밍코드

    - 에러 정정 가능함
    - 짝수 패리티 이용
    - 추가되는 패리티 비트의 수 (p= 패리티비트, d= 데이터비트 : 2^p ≥ d+p+1 )

    ★ 해밍코드에서 패리티비트의 위치와 패리티 생성영역

     위치  1 3 4  5  6  7  8  9  10  11  12
     기호  P1        P2        D3  P4        D5  D6  D7  P8        D9  D10  D11  D12
     P1                                                                                   
     P3                                                                                     
     P4                                                                          
     P8                                                                           

    P1 = P1 + D3 +D5 + D7 + D9 + D11
    P2 = P2 + D3 + D6 + D7 + D10 + D11
    P3 = P4 + D5 + D6 + D7 + D12
    P4 = P8 + D9 + D10 + D11 + D12


    728x90
    반응형

    '> Information Security > 논리회로설계' 카테고리의 다른 글

    디지털과 아날로그  (2) 2010.09.14
    논리회로 란?  (0) 2010.09.14
Designed by Tistory.