Labels

Showing posts with label CN and ACN. Show all posts
Showing posts with label CN and ACN. Show all posts

Wednesday, September 29, 2010

Checksum

#include<stdio.h>
#include<conio.h>
#include<math.h>
int i,a[8],b[8];
int ans,num[5],j,k,tot,carry;
void binary(int);
int check1sum();
void main()
{
int sender, receiver;
clrscr();
printf("\n Enter five 4-digit number: ");
for(i=0,tot=0;i<5;i++)
{
scanf("%d",&num[i]);
tot=tot+num[i];
}
printf("\nTotal= %d",tot);
binary(tot);
sender=check1sum();
printf("\n SENDER=%d",sender);

printf("\n Data Sent is \n");
for(i=0,tot=0;i<5;i++)
printf("\t%d",num[i]);
printf("\t%d",ans);

printf("\n At receiver side\n");
for(i=0,tot=0;i<5;i++)
{
tot=tot+num[i];
}
ans=tot+ans;
printf("\n Answer=%d",ans);
binary(ans);
sender=check1sum();
printf("\n RECEIVER=%d",sender);
getch();
}

void binary(int n)
{
i=0;
while(n!=0)
{
a[i]=n%2;
n=n/2;
i++;
}
}

int check1sum()
{
for(i=0,j=3,carry=0;i<4,j>=0;i++,j--)
{
ans=carry+a[i]+a[i+4];
if(ans==3)
{
carry=1;
b[j]=1;
}
if(ans==2)
{
carry=1;
b[j]=0;
}
if(ans==1)
{
carry=0;
b[j]=1;
}
if(ans==0)
{
carry=0;
b[j]=0;
}
}
printf("\n\n\n\n CHECKSUM\n\n\n");
for(i=0;i<4;i++)
printf("\t%d",b[i]);

for(i=0;i<4;i++)
{
if(b[i]==0)
b[i]=1;
else
b[i]=0;
}

for(i=0,ans=0;i<4;i++)
ans=ans+pow(2,3-i)*b[i];
return(ans);
}

CRC(Cyclic Redundancy check)

#include
#include
#include
#include
void main()
{
int i,j,n,g,a,arr[20],gen[20],b[20],q[20],s;
clrscr();
cout<<"Transmitter side :"; cout<<<"enter no. of data bits:"; cin>>n;
cout<<"\n enter data:"; for(i=0;i>arr[i];
cout<<"\n Enter size of Generator :"; cin>>g;
do
{ cout<<"Enter generator :"; for(j=0;j>gen[j];
}while(gen[0]!=1);
cout<<"\n Enter the Generator Matrix :";
for(j=0;j
cout<
a=n+(g-1);
cout<<"\n\t The appended matrix is :";
for(i=0;i
arr[n+i]=0;
for(i=0;i
cout<
for(i=0;i
q[i]=arr[i];
for(i=0;i
{
if(arr[i]==0)
{
for(j=i;j
arr[j]=arr[j]^0;
}
else
{
arr[i]=arr[i]^gen[0];
arr[i+1]=arr[i+1]^gen[1];
arr[i+2]=arr[i+2]^gen[2];
arr[i+3]=arr[i+3]^gen[3];
}
}
cout<<"\n\t The CRC is :";
for(i=n;i
cout<
s=n+a;
for(i=n;i
q[i]=arr[i];
cout<
for(i=0;i
cout<
getch();
}

Hamming Code

#include
#include
#include
void main()
{
char ch;
int rc[7],i,j,tot,ans,a[4],r[3],s[3],b[4],q[3];
clrscr();
printf("\n Enter Datawoed: ");

for(i=3;i>=0;i--)
scanf("%d",&a[i]);

//for r0
tot=a[0]+a[1]+a[2];
if(tot%2==0)
r[0]=0;
else
r[0]=1;

//for r1
tot=a[1]+a[2]+a[3];
if(tot%2==0)
r[1]=0;
else
r[1]=1;

//for r2
tot=a[0]+a[1]+a[3];
if(tot%2==0)
r[2]=0;
else
r[2]=1;


printf("\n Resultant Codeword\n");
for(i=3;i>=0;i--)
printf("\t%d",a[i]);
for(i=2;i>=0;i--)
printf("\t%d",r[i]);

printf("\n Want to change codeword?\n");
scanf("%s",&ch);
if(ch=='y' || ch=='Y')
{
for(i=6;i>=0;i--)
scanf("%d",&rc[i]);

for(i=6,j=3;i>=3,j>=0;i--,j--)
b[j]=rc[i];

for(i=2,j=2;i>=0;i--,j--)
q[j]=rc[i];


//SYNDROME
//for s0
tot=b[0]+b[1]+b[2]+q[0];
if(tot%2==0)
s[0]=0;
else
s[0]=1;

//for s1
tot=b[1]+b[2]+b[3]+q[1];
if(tot%2==0)
s[1]=0;
else
s[1]=1;

//for s2
tot=b[0]+b[1]+b[3]+q[2];
if(tot%2==0)
s[2]=0;
else
s[2]=1;

printf("\n\nS2\tS1\tS0\n");
for(j=2;j>=0;j--)
printf("%d\t",s[j]);

for(j=2,ans=0;j>=0;j--)
ans=ans+pow(2,j)*s[j];
printf("\n Answer=%d",ans);

switch(ans)
{
case 0:
printf("\n No Error");
break;

case 1:
printf("\n There is an error is q0");
if(q[0]==0)
q[0]=1;
else
q[0]=0;
break;

case 2:
printf("\n There is an error is q1");
if(q[1]==0)
q[1]=1;
else
q[1]=0;
break;

case 3:
printf("\n There is an error is b2");
if(b[2]==0)
b[2]=1;
else
b[2]=0;

break;

case 4:
printf("\n There is an error is q2");
if(q[2]==0)
q[2]=1;
else
q[2]=0;

break;

case 5:
printf("\n There is an error is b0");
if(b[0]==0)
b[0]=1;
else
b[0]=0;
break;

case 6:
printf("\n There is an error is b3");
if(b[3]==0)
b[3]=1;
else
b[3]=0;
break;

case 7:
printf("\n There is an error is b1");
if(b[1]==0)
b[1]=1;
else
b[1]=0;
break;
}
printf("\n After Correction\n");
for(i=3;i>=0;i--)
printf("\t%d",b[i]);
for(i=2;i>=0;i--)
printf("\t%d",q[i]);
 }
 getch();

Saturday, September 25, 2010

Subnetting Using C++

#include <iostream.h>
#include <conio.h>
#include <math.h>

void main(void)
{
    int a,b,c,d,q[15],n;
    double x = 2.0,k,m;
    clrscr();
    cout<<"\nEnter address for organisation : ";
    cin>>a>>b>>c>>d;
    cout<<"\nEnter subnet mask for organisation : ";
    cin>>m;
    cout<<"\nAddress for organisation :"<<a<<"."<<b<<"."<<c<<"."<<d<<"/"<<m<<endl;
    cout<<"\nEnter Number of subnets : ";
    cin>>n;

    for(int i=0;i<n;i++)
     {
cout<<"\nHow many addresses for subnet "<<i+1<<" : ";
cin>>q[i];
     }

     for(i=0;i<n;i++)
     {
  m=0;
  k=(int)pow(x,m);
  while(k!=q[i])
    {
  m++;
  k=(int)pow(x,m);
     }
  m=32-m;
  if(d>255)
   {
       d=0;
       c++;
   }
  cout<<"\nsubnet "<<i+1<<" : "<<a<<"."<<b<<"."<<c<<"."<<d<<"/"<<m;
  d=d+q[i]-1;
  if(d>255)
   {
       d=d-255-1;
       c++;
   }
   cout<<"  to  "<<a<<"."<<b<<"."<<c<<"."<<d++<<"/"<<m;
     }

     getch();
}