We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 11
Hamming Code in Computer Network
Last Updated : 14 May, 2025
Hamming code is an error-correcting code used to ensure data accuracy during
transmission or storage. Hamming code detects and corrects the errors that can occur
when the data is moved or stored from the sender to the receiver. This simple and
effective method helps improve the reliability of communication systems and digital
storage. It adds extra bits to the original data, allowing the system to detect and
correct single-bit errors. It is a technique developed by Richard Hamming in the
1950s.
What is Redundant Bits?
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:
erzmered
where,
* mis the number of bits in input data
* ris the number of redundant bits.
Suppose the number of data bits is 7, then the number of redundant bits can be
calculated as
=%27+441
Thus, the number of redundant bits is 4.
Types of 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 is even or odd. Parity bits are used for error detection. There are two
types of parity bits:+ Even Parity Bit: In the case of even parity, for a given set of bits, the number of
1's are counted. If that count is odd, the parity bit value is set to 1, making the total
count of occurrences of 1’s an even number. If the total number of 1’s in a given set
of bits is already even, the parity bit's value is 0.
Odd Parity Bit: In the case of odd parity, for a given set of bits, the number of
1's are counted. If that count is even, the parity bit value is set to 1, making the
total count of occurrences of 1's an odd number. If the total number of 1’s ina
given set of bits is already oda, the parity bit's value is 0.
Algorithm of Hamming Code
Hamming Code is simply the use of extra parity bits to allow the identification of an
error.
Step 1: Write the bit positions starting from 1 in binary form (1, 10, 11, 100, etc).
Step 2: All the bit positions that are a power of 2 are marked as parity bits (1, 2, 4, 8,
etc)
Step 3: All the other bit positions are marked as data bits.
Step 4: Each data bit is included in a unique set of parity bits, as determined its bit
position in binary form
Parity bit 1 covers all the bits positions whose binary representation includes a1 in
the least significant position (1, 3, 5, 7, 9, 11, etc).
Parity bit 2 covers all the bits positions whose binary representation includes a 1 in
the second position from the least significant bit (2, 3, 6, 7, 10, 11, etc)
Parity bit 4 covers all the bits positions whose binary representation includes a 1 in
the third position from the least significant bit (4-7, 12-15, 20-23, etc).
Parity bit 8 covers all the bits positions whose binary representation includes a 1 in
the fourth position from the least significant bit bits (8-15, 24-31, 40-47, etc).
In general, each parity bit covers all bits where the bitwise AND of the parity
position and the bit position is non-zero.
Step 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. Set a parity bit to 0 if the total number of ones in thepositions it checks is even
Position | R8
0) 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 I
9 =
10 fi]
Tt i
|
R1-> 1,3,5,7,9,11
R2 -> 2,3,6,7,10,11
R3-> 4,5,6,7
R4-> 89,10, 11
Determining The Position of Redundant Bits
Aredundancy bits are placed at positions that correspond to the power of 2. As in the
above example:
* The number of data bits = 7
* The number of redundant bits = 4
* The total number of bits = 7+4=111 #10 9 8 7 6 5 4 3 2 «7
[ 0 Di os] Da] D7} De] Ds of D3] D2 0: |
Lt td
Redundant bits
i #10 «9 8 7 6 5 4 3 2 1
7 | a 1 | R8| 7 o|o Ri 1| R2| RIR1
4014 1001 oi 0101 0011 0004
1 #10 9 8 7 6 5 4 3 2 «1
1) 0 1 1 o| oO 1 Rt
R2
1011 1010 O11 0110 0017 0010
1 °#10 9 8 7 6 § 4 3 2 1
1°] ‘| 1 Jo f | te |e |* Ré bit is calculated using parity check at all the bits positions whose binary
representation includes a 1 in the third position from the least significant bit. R4:
bits 4, 5, 6, 7
R4
es ae
0111 0110 0101 o100
1°10 9 8 7 6 5 4 32 1
1])o0}1 4/0 |}0 }|R4}1])11]0
+ To find the redundant bit R4, we check for even parity. Since the total number of
1's in all the bit positions corresponding to R4 is odd so the value of R4(parity bit’s
value) = 1
* R8 bit is calculated using parity check at all the bits positions whose binary
representation includes a 1 in the fourth position from the least significant bit. R8:
bit 8,9,10,11
R8&
4011 1019 1001 1000
11:10 «9 6 7 6 5 4 3 2 «71
a1 |o |4 | Ra} 1] of of 1]1 14 JO
* To find the redundant bit R8, we check for even parity. Since the total number of 1's
in all the bit positions corresponding to R8 is an even number the value of
R8 (parity bit's value)=0. Thus, the data transferred is:1
10 #9 8 7 6 5 4 3 2 17
binary number:
Teller i
o
eb bee Prer lr
1
ee ee
SS er?
Tel 1) lle 1 le« For R8: bit 8,9,10,11 . We can see that the number of 1's in these bit positions are
2 and that's even so we get a 0 for this.
* The bits give the binary number 0110 whose decimal representation is 6. Thus, bit
6 contains an error. To correct the error the 6th bit is changed from 1 to 0.
Features of Hamming Code
Error Detection and Correction: Hamming code is designed to detect and
correct single-bit errors that may occur during the transmission of data. This
ensures that the recipient receives the same data that was transmitted by the
sender.
Redundancy: Hamming code uses redundant bits to add additional information
to the data being transmitted. This redundancy allows the recipient to detect and
correct errors that may have occurred during transmission.
Efficiency: Hamming code is a relatively simple and efficient error-correction
technique that does not require a lot of computational resources. This makes it
ideal for use in low-power and low-bandwidth communication networks.
Widely Used: Hamming code is a widely used error-correction technique and is
used in a variety of applications, including telecommunications, computer networks,
and data storage systems.
Single Error Correction: Hamming code is capable of correcting a single-bit
error, which makes it ideal for use in applications where errors are likely to occur
due to external factors such as electromagnetic interference.
+ Limited Multiple Error Correction: Hamming code can only correct a limited
number of multiple errors. In applications where multiple errors are likely to occur,
more advanced error-correction techniques may be required.
For Implementation you can refer this article.
Question on Hamming Code
Assume that 12 bit hamming codeword consist of 8 bit data and 4 check
bits is dgd7dgdsc4d4d3d2¢3d,c2c, where the data bits and the check bits are
given in the following tables: [GATE 2021 ]Data bits Check bits
ds | dz | de | ds | da | ds | do | di ca | ca | co | er
O}ae]/oO};1}o0;1 y{|O] 1/0
dB od7 dé dS) c8 d4 | d3d2 cd. di) c2) clNow, calculating hamming code according to first parity bit C1: dydsdydydycy, 1x0010,
To make number of 1 even , for this x must be 0
Similarly, lets calculate for y , we will start from cg and make its even=>110xy here x is
already 0 , so y should be 0.
So the value of x is 0 and y is 0.
For more details you can refer GATE | GATE CS 2021 | Set 1 | Question 39 published
quiz.
Advantages
Hamming code can detect and correct single-bit errors, enhancing data reliability
during transmission and storage.
It adds a minimal number of redundant bits to the original data, maintaining a good
balance between data integrity and overhead. The algorithm for generating and
checking Hamming code is straightforward and can be easily implemented in both
hardware and software.
By detecting and correcting errors, Hamming code ensures that the received data
is accurate, reducing the chances of data corruption.
Hamming code is widely used in various fields such as computer memory (RAM),
data storage devices, and communication systems
Compared to more complex error correction codes, Hamming code provides a
cost-effective solution for applications where single-bit error correction is sufficient.
Disadvantages
Hamming code can only correct single-bit errors. It is unable to correct multiple-bit
errors, which limits its effectiveness in environments with high error rates.
While it can detect single-bit and some two-bit errors, Hamming code cannot detect
all multiple-bit errors. This reduces its reliability in certain applications.
Although it uses fewer redundant bits compared to some other error correction
methods, the addition of these bits still increases the overall data size, which can
be a drawback in bandwidth-constrained environments.
Implementing Hamming code requires additional hardware or software resources
for error detection and correction, which can be a limitation in resource-constrainedsystems