시스템구조

데이터링크 계층_해밍코드 계산, 해밍거리, 빅인디안, 리틀인디안

스윙스윙 2021. 10. 22. 21:34

▣ 데이터링크 계층_해밍코드 계산

 

2017년 92번

정답 : 2번

해밍코드가 위치하는 자리수는 2ⁿ(1, 2, 4, 8, 16... 자리)
각각의 해밍코드 값은 자신의 위치부터 자리수 만큼 1의 개수를 세고,

자리수 만큼 건너뛰고 다시 자리수 만큼 개수를 세고를 반복한다
예) C2(2 번째 자리) 해밍코드 2,3 자리 세고 4,5 자리 건너뛰고 6,7 자리 세고 .. 반복

C1 의 짝수패리티 카운트 : 1,3,5,7 → 0 0 1 1 이므로 짝수(맞음)
C2 의 짝수패리티 카운트 : 2,3,6,7 → 0 0 0 1 이므로 홀수(틀림)
C4 의 짝수패리티 카운트 : 4,5,6,7 → 0 1 0 1 이므로 짝수(맞음)

 

해밍코드의 짝수 패리티는 맞음, 틀림, 맞음  → 010으로 표현, 10진수로 바꾸면 2

두번째 행에서 오류가 발생했다는 것을 의미

정답은 0100101

 


■ 비트 오더

리틀인디안(Little Endian) 방식이면 오른쪽에서 왼쪽으로

      왼쪽 ◀ 오른쪽

빅인디안(Big Endian)이면 왼쪽에서 오른쪽으로 계산

      왼쪽 오른쪽

 

■ 해밍코드

p 추가할 패리티 비트 수

d 원본 데이터 비트 수

 

2^p -p -1>=n

 

만약, 원본데이터 1110 이라면

2^3 = 3+4+1

p = 3

 

8 - 3 - 1 = 4

 

해밍코드가 위치하는 자리수는 2ⁿ(1, 2, 4, 8, 16... 자리)

n는 0부터 시작

 

 

해밍코드 생성규칙

 

■ 해밍거리

같은 길이를 가진 두개의 비트열에서 서로 다른 문자의 개수

Hamming distance

1011 and 0111 => 2