**Q**

# Hamming code

**An 8 bit byte with binary value 10101111 is to be encoded using an even-parity Hamming code. What is the binary value after encoding?**

The given 8 bit byte with a binary value of 10101111 yields a parity value of 101001001111.

This is how you solve it:

- 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.)
_ _ 1 _ 0 1 0 _ 1 1 1 1

- 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.

Doing the calculations: Position 1 yields a value of 3, which is odd and therefore a 1. Positions 2, 4 and 8 equal 4, 2 and 4 respectively. So they each get a value of 0. Filling them in gets you:

1 0100 1 0 0 1 1 1 1

This question was answered by Kevin Wnek, IT Specialist for TechTarget.

Kevin has a degree in mechanical engineering from Northeastern University. Kevin enjoys digging into the bits and bytes that make up the computer industry. His hobbies include quantum physics and linear mathematics.