Prity 비트 발생기
츠키코
질문 제목 :패리티 비트 발생기 프로그래밍질문 요약 :아래의 조건을 만족하는 패리티 비트 벌생기 프로그래밍질문 내용 :
43200개의 정보비트에 21600개의 패리티비트를 더하여 전체 64800비트를 만드는 것입니다.
정보비트는 임의의 비트를 입력으로 받아서 이에 해당하는 21600개의 패리티 비트를 발생시키는 것입니다.
이때 패리티비트를 p0 , p1,..., p21599로 하고, 정보비트를 i0, i1, … ,i43119로 합니다.
먼저 패리티비트를 모두 0으로 초기화를 하고 다음과 같이 계산을 합니다.
p317 = p317⊕i0
p2255 = p2255⊕i0
p2324 = p2324⊕i0
p2723 = p2723⊕i0
p3538 = p3538⊕i0
p3576 = p3576⊕i0
p6194 = p6194⊕i0
p6700 = p6700⊕i0
p9101 = p9101⊕i0
p10057 = p10057⊕i0
p12739 = p12739⊕i0
p17407 = p17407⊕i0
p21039 = p21039⊕i0
다음으로 359개의 정보비트 im = m= 1,2, ... , 359 이면 {x + m(mod360)*60}mod21600 으로 계싼을 하고, 이때 x는 io에 해당하는 주소 입니다. 이때의 계산식은 아래와 같습니다.
p377 = p377⊕i1
p2315 = p2315⊕i1
p2384 = p2384⊕i1
p2783 = p2783⊕i1
p3598 = p3598⊕i1
p3636 = p3636⊕i1
p6254 = p6254⊕i1
p6760 = p6760⊕i1
p9161 = p9161⊕i1
p10117 = p10117⊕i1
p12799 = p12799⊕i1
p17467 = p17467⊕i1
p21099 = p21099⊕i1
다음으로 361번째 정보티느 i360이 입력이 되면 테이블에서 저장하는 곳이 첫번째 줄에서 두번째 줄로 바뀌게 됩니다.
이때의 공식은 {x + m(mod360)*60}mod21600 이며, m=361,362, ... , 719, x는 i360이 가르키는 주소가 됩니다.
이렇게 정보비트가 360개씩 들어올때마다 테이블에서 저장하는 곳이 한줄씩 내려가게 됩니다.
최종적으로 p0 = p0, pi=pi⊕pi-1 i=1,2, ... , 21599 가 됩니다.
이런 결과가 되게끔 프로그램밍을 하려고하는데 어떻게 해야 될지 몰라서 이렇게 이렇게 질문드립니다.
테이블도 같이 첨부합니다.