You are on page 1of 9

Name: Chenchu Aravind

RegNo: 20MIA1126
Slot:L55+L56
Computer Network Essentials
LAB FAT-WinterSem 21-22
a) Write a C/C++ program to demonstrate hamming code error detection and correction
mechanisms.
OUTPUT:

Source code:

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int main()

int a[50], t1[70], t2[70];

int i, j, t, n, h, d, k, pos = 0, sum = 0, maxp = 6, m;


printf("Enter Length Of the Data String: ");

scanf("%d", &d);

printf("Enter Data String: ");

for (i = 0; i < d; i++)

scanf("%d", &a[i]);

for (i = 0, j = 0; i < d; i++)

for (k = 0; k < maxp; k++)

t = pow(2, k) - 1;

if (j == t)

t1[j] = 0;

j++;

t1[j] = a[i];

j++;

h = j;

printf("Length of the Hamming code: %d bits\n", h);

n = h - d;

printf("Number of Redundant bits: %d \n", n);

int b[n];

m = n - 1;

for (k = 0; k < n; k++)

t = pow(2, k) - 1;

for (i = t; i < h;)


{

for (j = 0; j <= t; j++)

sum = sum + t1[i];

i++;

if (i >= h)

{ break;

if (i >= h)

break;

for (j = 0; j <= t; j++)

i++;

if (i >= h)

break;

if (i >= h)

break;

t1[t] = sum % 2;

sum = 0;

printf("P%d: %d ", t + 1, t1[t]);

printf("\n\n Sender side: ");


for (i = 0; i < h; i++)

printf("%d ", t1[i]);

printf("\n Receiver side: ");

for (i = 0; i < h; i++)

scanf("%d", &t2[i]);

sum = 0;

for (k = 0; k < n; k++)

t = pow(2, k) - 1;

for (i = t; i < h;)

for (j = 0; j <= t; j++)

sum = sum + t2[i];

i++;

if (i >= h)

break;

if (i >= h)

break;

for (j = 0; j <= t; j++)

{
i++;

if (i >= h)

break;

if (i >= h)

break;

b[m] = sum % 2;

sum = 0;

printf("P%d: %d ", t + 1, b[m]);

m--;

for (m = 0; m < n; m++)

pos = pos + b[n - m - 1] * pow(2, m);

printf("\n\nError is at position: %d\n", pos);

if (t2[pos - 1] == 0)

t2[pos - 1] = 1;

else

t2[pos - 1] = 0;

printf("Hamming code: Receiver side: Error Corrected: ");

for (i = 0; i < h; i++)


{

printf("%d ", t2[i]);

b) Perform Default Routing connecting one class B network (185.1.X.X) with another Class B
network (180.1.X.X) using cisco packet tracer.

You might also like