Hamming Code
•Hamming code is a set of error-correction codes that
can be used to detect and correct the errors that can
occur when the data is moved or stored from the
sender to the receiver.
•It is technique developed by R.W. Hamming for error
correction.
Dept of CSE/IT, MLRITM, UGC Autonomous
Hamming Code -Redundant Bit
•Redundant bits are extra binary bits that are
generated and added to the information-carrying
bits of data transfer to ensure that no bits were
lost during the data transfer.
•The number of redundant bits can be calculated
using the following formula: 2^r ≥ m + r + 1 where,
r = redundant bit, m = data bit.
•EX: number of data bits : 7, then the number of
redundant bits can be calculated using: = 2^4 ≥ 7
+4+1.
•Thus, the number of redundant bits= 4
Dept of CSE/IT, MLRITM, UGC Autonomous
Hamming Code – Parity Bits
Parity bits
A parity bit is a bit appended to a data of binary bits
to ensure that the total number of 1’s in the data are
even or odd. Parity bits are used for error detection
Even parity ( 1111------- ( 11110))
Odd parity ( 1110 11101)
Dept of CSE/IT, MLRITM, UGC Autonomous
Hamming Code Algorithm
General Algorithm of Hamming code :
It use of extra parity bits to allow the identification of an error.
1. Write the bit positions starting from 1 in binary form (1, 10, 11,
100, etc).
2. All the bit positions that are a power of 2 are marked as parity
bits (1, 2, 4, 8, etc).
3. All the other bit positions are marked as data bits.
4. Each data bit is included in a unique set of parity bits, as
determined its bit position in binary form.
a. Parity bit 1 covers all the bits positions whose binary
representation includes a 1 in the least significant position
(1, 3, 5, 7, 9, 11, etc).
Dept of CSE/IT, MLRITM, UGC Autonomous
Hamming Code Algorithm
b. Parity bit 2 - (2, 3, 6, 7, 10, 11, etc).
c. Parity bit 4 - (4–7, 12–15, 20–23, etc).
d. Parity bit 8 - (8–15, 24–31, 40–47, etc).
e. In general each parity bit covers all bits where the
bitwise AND of the parity position and the bit position
is non-zero.
5. Since we check for even parity set a parity bit to 1 if the
total number of ones in the positions it checks is odd.
6. Set a parity bit to 0 if the total number of ones in the
positions it checks is even.
Dept of CSE/IT, MLRITM, UGC Autonomous
Hamming Code Example
Determining the position of redundant bits
These redundancy bits are placed at the positions which
correspond to the power of 2.
As in the above example:
1. The number of data bits = 7
2. The number of redundant bits = 4
3. The total number of bits = 11
4. The redundant bits are placed at positions corresponding
to power of 2- 1, 2, 4, and 8
Dept of CSE/IT, MLRITM, UGC Autonomous
Hamming Code Example
Determining the Parity bits –
R1bits: 1, 3, 5, 7, 9, 11: 1 1 1 0 1 - = 0 – Even Parity
R2: bits 2,3,6,7,10,11: 1 0 1 0 1 - = 1 – Odd
Dept of CSE/IT, MLRITM, UGC Autonomous
Hamming Code Example
R4: bits 4, 5, 6, 7 : 1 0 0 - = 1 – Odd
R8: bit 8,9,10,11: 1 0 1 - = 0 – Even
Dept of CSE/IT, MLRITM, UGC Autonomous
Hamming Code Example
Thus, the data transferred form Source to Receiver :
Error Detection
R1bits: 1, 3, 5, 7, 9, 11: 1 1 1 0 1 1 0 = 0 – Even Parity
R2: bits 2,3,6,7,10,11: 1 0 1 0 1 1 = 0 – Even parity
R4: bits 4, 5, 6, 7 : 1 0 0 1 = 0 - Even parity
R8: bit 8,9,10,11: 1 0 1 0 = 0 – Even Parity
No Error in the given data(Message)
Dept of CSE/IT, MLRITM, UGC Autonomous
Hamming Code Example
Suppose in the above example the 6th bit is changed from 0 to 1 during data
transmission, then it gives new parity values in the binary number:
Dept of CSE/IT, MLRITM, UGC Autonomous
Hamming Code Example
•The bits give the binary number as 0110 whose
decimal representation is 6.
•Thus, the bit 6 contains an error.
•To correct the error the 6th bit is changed from 1 to 0.
Dept of CSE/IT, MLRITM, UGC Autonomous