**Eg. So let’s form hamming code using 4-bit message bits 1101 with parity bits as even parity bit and check how it is able to detect and correct error.**

As we have already decided parity bit positions and their corresponding message bits for a 4-bit message

For the moment we have hamming code as P_{1 }P_{2 }1 P_{3 }1 0 1

As we have already seen **P _{1 }**Checks bit number 1,3,5,7

So **P _{1 =} 1 to make number of 1’s to 4 i.e. even in positions 1,3,5,7**

** P _{2 }**Checks bit number 2,3,6,7

**So P _{2 =} 0 to make number of 1’s to 2 i.e. even in positions 2,3,6,7**

**P _{3 }**Checks bit number 4,5,6,7

**So P _{3 =} 0 to make number of 1’s to 2 i.e. even in positions 4,5,6,7**

Hence we have the hamming code as 1010101

As we have already mentioned that hamming code can only detect and correct only single error. So we have error at 5^{th} position which means bit changes from 1 to 0 so we have data changed from 1010101 to 1010001

Now let’s start checking all 3 parity bits starting from **P _{1}**

**P _{1 }Checks** bit number 1,3,5,7 and we see we have number 1’s in these bits is 3 i.e. odd which is wrong as it should have been even so put a 1

**P _{2 }Checks** bit number 2,3,6,7 and we see we have number 1’s in these bits is 2 i.e. even which is right so put a 0

**P _{3 }Checks** bit number 4,5,6,7 and we see we have number 1’s in these bits is 1 i.e. odd which is wrong as it should have been even so put a 1

Now we collect all the bits recorded with bit from **P _{1 }**as LSB

So we get 101 hence we get bit 5 with

**So as** **P _{1 }and P_{3} give wrong results so now we find which code bit position is common but not found in code bit position of parity bit P_{2 }and we see that we 5 and 7 common for P_{1 }and P_{3} but 7 is also present in P_{2} so we are left with code position 5.**

**RULE TO FIND POSITION OF ERROR: **We start from **P _{1 }**and start checking whether bit is correct or wrong and if it is wrong then we put a 1 and put a zero if it is correct. And while we reach end we collect all those bits taking bit from

**P**as LSB. The decimal equivalent we get from the bits collected is the bit position of error

_{1 }Hence we have the bit change in position 5 so re-change it to get the correct value. Hence we change 5^{th} bit of received message which is 1010001, we get 1010101 which is correct one.

So we see hamming code is able to detect and correct single error.