Advertisement
Tusohian

C program of Data Communication Lab

Dec 5th, 2018
387
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.41 KB | None | 0 0
  1. -------------------
  2. Hamming Code:
  3. -------------------
  4. #include<stdio.h>
  5.  
  6. void main()
  7. {
  8.     int data[10];
  9.     int dataatrec[10],c,c1,c2,c3,i;
  10.  
  11.     printf("Enter 4 bits of data one by one:\n");
  12.     scanf("%d",&data[0]);
  13.     scanf("%d",&data[1]);
  14.     scanf("%d",&data[2]);
  15.     scanf("%d",&data[4]);
  16.  
  17.     //Calculation of even parity
  18.     data[6]=data[0]^data[2]^data[4];
  19.     data[5]=data[0]^data[1]^data[4];
  20.     data[3]=data[0]^data[1]^data[2];
  21.  
  22.     printf("\nEncoded data is\n");
  23.     for(i=0; i<7; i++)
  24.         printf("%d",data[i]);
  25.  
  26.     printf("\n\nEnter received data bits one by one\n");
  27.     for(i=0; i<7; i++)
  28.         scanf("%d",&dataatrec[i]);
  29.  
  30.     c1=dataatrec[6]^dataatrec[4]^dataatrec[2]^dataatrec[0];
  31.     c2=dataatrec[5]^dataatrec[4]^dataatrec[1]^dataatrec[0];
  32.     c3=dataatrec[3]^dataatrec[2]^dataatrec[1]^dataatrec[0];
  33.     c=c3*4+c2*2+c1 ;
  34.  
  35.     if(c==0)
  36.     {
  37.         printf("\nNo error while transmission of data\n");
  38.     }
  39.     else
  40.     {
  41.         printf("\nError on position %d",c);
  42.  
  43.         printf("\nData sent : ");
  44.         for(i=0; i<7; i++)
  45.             printf("%d",data[i]);
  46.  
  47.         printf("\nData received : ");
  48.         for(i=0; i<7; i++)
  49.             printf("%d",dataatrec[i]);
  50.  
  51.         printf("\nCorrect message is\n");
  52.  
  53.         //if errorness bit is 0 we complement it else vice versa
  54.         if(dataatrec[7-c]==0)
  55.             dataatrec[7-c]=1;
  56.         else
  57.             dataatrec[7-c]=0;
  58.  
  59.         for (i=0; i<7; i++)
  60.         {
  61.             printf("%d",dataatrec[i]);
  62.         }
  63.     }
  64. }
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71. --------------------------------------
  72. Parity Bit to Single Error detection:
  73. --------------------------------------
  74.  
  75. #include<stdio.h>
  76.  
  77. void main()
  78. {
  79.     int data[5], parity_bit,n,i,count=0;
  80.     printf("Number of Data Bit: ");
  81.     scanf("%d",&n);
  82.     for(i=0; i<n; i++)
  83.     {
  84.         printf("Enter number %d: ", i+1);
  85.         scanf("%d",& data[i]);
  86.     };
  87.     printf("Enter the parity bit: ");
  88.     scanf("%d",&parity_bit);
  89.  
  90.     data[n]=parity_bit;
  91.     printf("Code Word: ");
  92.     for(i=0; i<=n; i++)
  93.     {
  94.         printf("%d ", data[i]);
  95.     };
  96.     printf("\n");
  97.  
  98.     for(i=0; i<=n; i++)
  99.     {
  100.         if (data[i]==1)
  101.         {
  102.             count++;
  103.         }
  104.     };
  105.     printf("Number of 1 in Data Bit: %d \n",count);
  106.  
  107.     if(count%2==0)
  108.     {
  109.         printf("Result: No Error!");
  110.     }
  111.     else
  112.     {
  113.         printf("Result: Error!");
  114.     }
  115.  
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement