Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
42 views

Hamming Code in Computer Network - GeeksforGeeks

Hamming code is an error-correcting code that detects and corrects single-bit errors in data transmission, enhancing communication reliability. It utilizes redundant bits calculated using a specific formula and employs parity bits for error detection. While effective for single-bit errors, Hamming code has limitations in correcting multiple-bit errors and requires additional resources for implementation.

Uploaded by

Royal Computers
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Hamming Code in Computer Network - GeeksforGeeks

Hamming code is an error-correcting code that detects and corrects single-bit errors in data transmission, enhancing communication reliability. It utilizes redundant bits calculated using a specific formula and employs parity bits for error detection. While effective for single-bit errors, Hamming code has limitations in correcting multiple-bit errors and requires additional resources for implementation.

Uploaded by

Royal Computers
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Hamming Code in Computer Network

Last Updated : 26 Jul, 2024

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:

2r ≥ m + r + 1

where m is the number of bits in input data, and r is the number of


redundant bits.

Suppose the number of data bits is 7, then the number of redundant


bits can be calculated using: = 24 ≥ 7 + 4 + 1 . 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 in a given set of bits is already
odd, 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:

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).
b. 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).
c. 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).
d. 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).
e. 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 the positions it checks is even.

Determining The Position of Redundant Bits


A redundancy 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=>11
The redundant bits are placed at positions corresponding to power
of 2 that is 1, 2, 4, and 8

Suppose the data to be transmitted is 1011001 from sender to


receiver, the bits will be placed as follows:
Determining The Parity Bits According to Even Parity
R1 bit is calculated using parity check at all the bits positions whose
binary representation includes a 1 in the least significant position.
R1: bits 1, 3, 5, 7, 9, 11

To find the redundant bit R1, we check for even parity. Since the
total number of 1’s in all the bit positions corresponding to R1 is an
even number. So, the value of R1 (parity bit’s value) = 0.

R2 bit is calculated using parity check at all the bits positions whose
binary representation includes a 1 in the second position from the
least significant bit. R2: bits 2,3,6,7,10,11

To find the redundant bit R2, we check for even parity. Since the
total number of 1’s in all the bit positions corresponding to R2 is odd
the value of R2(parity bit’s value)=1
R4 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

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

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:
Error Detection and Correction
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:

For all the parity bits we will check the number of 1’s in their
respective bit positions.

For R1: bits 1, 3, 5, 7, 9, 11. We can see that the number of 1’s in
these bit positions are 4 and that’s even so we get a 0 for this.
For R2: bits 2,3,6,7,10,11 . We can see that the number of 1’s in
these bit positions are 5 and that’s odd so we get a 1 for this.
For R4: bits 4, 5, 6, 7 . We can see that the number of 1’s in these bit
positions are 3 and that’s odd so we get a 1 for this.
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 d8d7d6d5c4d4d3d2c3d1c2c1 ,where the data bits
and the check bits are given in the following tables: [GATE 2021
]
Which one of the following choices gives the correct values of x and y
?

(A) x is 0 and y is 0

(B) x is 0 and y is 1

(C) x is 1 and y is 0

(D) x is 1 and y is 1

Answer: (A)

We will first insert our codeword according to hamming code


d8d7d6d5c4d4d3d2c3d1c2c1,

Now,calculating hamming code according to first parity bit C1:


d7d5d4d2d1c1. 1×0010, To make number of 1 even , for this x must be 0.

Similarly, lets calculate for y , we will start from c8 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-constrained systems.

Conclusion
Hamming code is a method used for error correction in data
transmission. It can detect and correct single-bit errors, ensuring that
the data received matches the data sent. This makes communication
systems more reliable by reducing the impact of errors.

Frequently Asked Questions on Hamming Code –


FAQs

What is Hamming code?

Hamming code is an error-correcting code used to detect and


correct single-bit errors in data transmission or storage.
How does Hamming code work?

Hamming code works by adding redundant bits to the original


data bits. These redundant bits help identify and correct any
single-bit errors in the data.

Aptitude
How Engineering Mathematics bits
many redundant Discrete
areMathematics
needed for Operating
Hamming System code?
DBMS Computer Netw

The number of redundant bits (r) needed depends on the number


of data bits (m) and is given by the formula 2r >= m + r + 1.

Can Hamming code correct multiple-bit errors?

Hamming code is designed primarily to correct single-bit errors. It


can detect but not correct multiple-bit errors.

Where is Hamming code commonly used?

Hamming code is commonly used in computer memory (RAM),


data storage systems, and communication systems to ensure data
integrity.

What is the main advantage of Hamming code?

The main advantage of Hamming code is its ability to correct


single-bit errors, enhancing data reliability without requiring
excessive redundant bits.

What are the main limitations of Hamming code?


The main limitation is that it can only correct single-bit errors. It is
not effective for detecting or correcting multiple-bit errors.

What is the purpose of parity bits in Hamming code?

Parity bits in Hamming code are used to ensure that the overall
number of 1s in specific positions is even (even parity) or odd (odd
parity), which helps in error detection and correction.

Dreaming of M.Tech in IIT? Get AIR under 100 with our GATE 2026
CSE & DA courses! Get flexible weekday/weekend options, live
mentorship, and mock tests. Access exclusive features like All India
Mock Tests, and Doubt Solving—your GATE success starts now!

Comment More info


Next Article
Advertise with us Concepts of hamming distance

Similar Reads
Why Star network is More Efficient in Network Fault Tolerance in Plac…
Answer: Star networks offer better fault tolerance than bus networks
because a single point of failure in a star network (the central hub) affec…
2 min read

Basic Network Attacks in Computer Network


Many people rely on the Internet for many of their professional, social and
personal activities. But there are also people who attempt to damage o…
7 min read
How to Find Network IP Address of Computer Using Computer Name?
Answer: By using the command "ping" followed by the computer name in
the command prompt or terminal.To find the network IP address of a…
1 min read

Minimum Hamming Distance


Minimum Hamming Distance is the shortest hamming distance between
any two codewords. It is also the measure of comparing and correcting…
4 min read

Differences between Wireless Adhoc Network and Wireless Sensor…


1. Wireless Adhoc Network: A wireless ad-hoc network is a wireless
network deployed without any framework or infrastructure. This…
3 min read

Difference between Next Generation Network and Traditional Network


1. Next Generation Network : In short Next Generation Network is termed
as NGN which is packet based network used for both telephony and…
5 min read

Difference between Network Administrator and Network Engineer


1. Network Administrator :A network administrator is a someone in an
organization whose job is to manage organization's computer network.…
3 min read

Difference Between Network Security and Network Administration


In the world of information technology, there are two important and
distinct roles that are often confused: network security and network…
5 min read

Difference Between Network Management and Network Monitoring


Pre-requisites: Areas of Network Management Network management
and Network monitoring are two important functions in maintaining the…
3 min read
Difference Between Network Congestion and Network Latency
Network congestion refers to a situation in which a network experiences
an excessive amount of traffic, resulting in a reduction of available…
9 min read

Corporate & Communications Address:


A-143, 7th Floor, Sovereign Corporate
Tower, Sector- 136, Noida, Uttar Pradesh
(201305)

Registered Address:
K 061, Tower K, Gulshan Vivante
Apartment, Sector 137, Noida, Gautam
Buddh Nagar, Uttar Pradesh, 201305

Advertise with us

Company Explore
About Us Job-A-Thon Hiring Challenge
Legal Hack-A-Thon
Privacy Policy GfG Weekly Contest
Careers Offline Classes (Delhi/NCR)
In Media DSA in JAVA/C++
Contact Us Master System Design
GFG Corporate Solution Master CP
Placement Training Program GeeksforGeeks Videos
Geeks Community

Languages DSA
Python Data Structures
Java Algorithms
C++ DSA for Beginners
PHP Basic DSA Problems
GoLang DSA Roadmap
SQL DSA Interview Questions
R Language Competitive Programming
Android Tutorial

Data Science & ML Web Technologies


Data Science With Python HTML
Data Science For Beginner CSS
Machine Learning JavaScript
ML Maths TypeScript
Data Visualisation ReactJS
Pandas NextJS
NumPy NodeJs
NLP Bootstrap
Deep Learning Tailwind CSS

Python Tutorial Computer Science


Python Programming Examples GATE CS Notes
Django Tutorial Operating Systems
Python Projects Computer Network
Python Tkinter Database Management System
Web Scraping Software Engineering
OpenCV Tutorial Digital Logic Design
Python Interview Question Engineering Maths

DevOps System Design


Git High Level Design
AWS Low Level Design
Docker UML Diagrams
Kubernetes Interview Guide
Azure Design Patterns
GCP OOAD
DevOps Roadmap System Design Bootcamp
Interview Questions

School Subjects Commerce


Mathematics Accountancy
Physics Business Studies
Chemistry Economics
Biology Management
Social Science HR Management
English Grammar Finance
Income Tax

Databases Preparation Corner


SQL Company-Wise Recruitment Process
MYSQL Resume Templates
PostgreSQL Aptitude Preparation
PL/SQL Puzzles
MongoDB Company-Wise Preparation
Companies
Colleges

Competitive Exams More Tutorials


JEE Advanced Software Development
UGC NET Software Testing
UPSC Product Management
SSC CGL Project Management
SBI PO Linux
SBI Clerk Excel
IBPS PO All Cheat Sheets
IBPS Clerk Recent Articles

Free Online Tools Write & Earn


Typing Test Write an Article
Image Editor Improve an Article
Code Formatters Pick Topics to Write
Code Converters Share your Experiences
Currency Converter Internships
Random Number Generator
Random Password Generator

DSA/Placements Development/Testing
DSA - Self Paced Course JavaScript Full Course
DSA in JavaScript - Self Paced Course React JS Course
DSA in Python - Self Paced React Native Course
C Programming Course Online - Learn C with Data Django Web Development Course
Structures Complete Bootstrap Course
Complete Interview Preparation Full Stack Development - [LIVE]
Master Competitive Programming JAVA Backend Development - [LIVE]
Core CS Subject for Interview Preparation Complete Software Testing Course [LIVE]
Mastering System Design: LLD to HLD Android Mastery with Kotlin [LIVE]
Tech Interview 101 - From DSA to System Design [LIVE]
DSA to Development [HYBRID]
Placement Preparation Crash Course [LIVE]

Machine Learning/Data Science Programming Languages


Complete Machine Learning & Data Science Program - [LIVE] C Programming with Data Structures
Data Analytics Training using Excel, SQL, Python & PowerBI - C++ Programming Course
[LIVE] Java Programming Course
Data Science Training Program - [LIVE] Python Full Course
Mastering Generative AI and ChatGPT
Data Science Course with IBM Certification

Clouds/Devops GATE
DevOps Engineering GATE CS & IT Test Series - 2025
AWS Solutions Architect Certification GATE DA Test Series 2025
Salesforce Certified Administrator Course GATE CS & IT Course - 2025
GATE DA Course 2025
GATE Rank Predictor

@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved

You might also like