Code Creation
Mark all bit positions that are powers of two as parity bits. (positions 1, 2, 4, 8, 16, 32, 64, etc.) All other bit positions are for the data to be encoded. (positions 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, etc.) Each parity bit calculates the parity for some of the bits in the code word. The position of the parity bit determines the sequence of bits that it alternately checks and skips.
Position 1: check 1 bit, skip 1 bit, check 1 bit, skip 1 bit, etc. (1,3,5,7,9,11,13,15,…)
Position 2: check 2 bits, skip 2 bits, check 2 bits, skip 2 bits, etc. (2,3,6,7,10,11,14,15,…)
Position 4: check 4 bits, skip 4 bits, check 4 bits, skip 4 bits, etc. (4,5,6,7,12,13,14,15,20,21,22,23,…)
Position 8: check 8 bits, skip 8 bits, check 8 bits, skip 8 bits, etc. (8-15,24-31,40-47,…)
Position 16: check 16 bits, skip 16 bits, check 16 bits, skip 16 bits, etc. (16-31,48-63,80-95,…)
Position 32: check 32 bits, skip 32 bits, check 32 bits, skip 32 bits, etc. (32-63,96-127,160-191,…)
etc.
Set a parity bit to 1 if the total number of ones in the positions it checks is odd.
Set a parity bit to 0 if the total number of ones in the positions it checks is even.
Example 1
A byte of data: 01010101
Let us number the bits of this character b12, b11, b10, b9, b7, b6, b5, b3, and we will number bits from right to left (dari kanan ke kiri), leaving space for the soon-to-be-added check bits. Now add to these bits the following check bits: c8, c4, c2, and c1. where c8 generate a simple even parity for bits b12, b11, b10, b9 . The check bit c4 will generate a simple even parity for bits b12, b7, b6, b5. Check bit c2 will generate a simple even parity for bits b11, b10, b7, b6, b3. And c1 will generate a simple even parity for bits b11, b9, b7, b5, b3. Note that each bit here is checking different sequence of data bits.
