Kit DCN Program
Kit DCN Program
1.Bit stuffing -1
#include<stdio.h>
int main()
scanf("%s",msg1);
while(i<strlen(msg1))
msg2[j]='1';
msg2[j+1]='1';
msg2[j+2]='1';
msg2[j+3]='1';
msg2[j+4]='1';
msg2[j+5]='0';
j=j+6;
i=i+5;
else
msg2[j]=msg1[i];
i++;
j++;
msg2[j]='\0';
i=0,j=0;
while(i<strlen(msg2))
msg3[j]='1';
msg3[j+1]='1';
msg3[j+2]='1';
msg3[j+3]='1';
msg3[j+4]='1';
j=j+5;
i=i+6;
else
msg3[j]=msg2[i];
i++;
j++;
}
msg3[j]='\0';
printf("\n\n\n ");
return 0;
Output:
--------------------------------------------------------------------------------------------------------------------------
2. Bit stuffing 2
#include<stdio.h>
#include<string.h>
int main()
char flag[]="01111110";
scanf("%s",msg1);
while(i<strlen(msg1))
msg2[j]='0';
msg2[j+1]='1';
msg2[j+2]='1';
msg2[j+3]='1';
msg2[j+4]='1';
msg2[j+5]='1';
msg2[j+6]='0';
msg2[j+7]='1';
msg2[j+8]='0';
j=j+8;
i=i+7;
else
msg2[j]=msg1[i];
i++;
j++;
msg2[j]='\0';
strcat(msg2,flag);
strcat(temp,flag);
strcat(temp,msg2);
strcpy(msg2,temp);
i=8,j=0;
while(i<strlen(msg2)-8)
msg3[j]='0';
msg3[j+1]='1';
msg3[j+2]='1';
msg3[j+3]='1';
msg3[j+4]='1';
msg3[j+5]='1';
msg3[j+6]='1';
msg3[j+7]='0';
j=j+7;
i=i+8;
else
msg3[j]=msg2[i];
i++;
j++;
msg3[j]='\0';
printf("\n\n\n ");
return 0;
}
Output:
3. Character count:
#include<stdio.h>
int main()
int i, j, cnt=0;
char z;
gets(msg1);
for(i=j=0; ; )
z=48+cnt+1;
msg2[i-cnt] = z;
i++;
j++;
cnt = 0;
{
z=48+cnt+1;
msg2[i-cnt] = z;
i++;
j++;
cnt = 0;
break;
else
msg2[j+1] = msg1[i];
i++;
j++;
cnt++;
msg2[j]='\0';
printf("\n\n\n ");
return 0;
Output:
--------------------------------------------------------------------------------------------------------------------------------------
4. Character Stuffing-1
#include<stdio.h>
int main()
scanf("%s",msg1);
strcpy(msg2,"dlestx");
j=j+6;
while(i<strlen(msg1))
msg2[j]='d';
msg2[j+1]='l';
msg2[j+2]='e';
msg2[j+3]='d';
msg2[j+4]='l';
msg2[j+5]='e';
j=j+6;
i=i+3;
else
{
msg2[j]=msg1[i];
i++;
j++;
msg2[j]='d';
msg2[j+1]='l';
msg2[j+2]='e';
msg2[j+3]='e';
msg2[j+4]='t';
msg2[j+5]='x';
msg2[j+6]='\0';
i=6,j=0;
while(i<strlen(msg2)-6)
msg3[j]='d';
msg3[j+1]='l';
msg3[j+2]='e';
i=i+6;
j=j+3;
else
{
msg3[j]=msg2[i];
i++;
j++;
msg2[j+1]='\0';
printf("\n\n\n ");
return 0;
Output:
5. Character Stuffing -2
#include<stdio.h>
int main()
char sd[]="#*";
char ed[]="#@";
scanf("%s",msg1);
msg2[j]='#';
msg2[j+1]='*';
j=j+2;
while(i<strlen(msg1))
msg2[j]='#';
msg2[j+1]='#';
msg2[j+2]='*';
i=i+2;
j=j+3;
msg2[j]='#';
msg2[j+1]='#';
msg2[j+2]='@';
i=i+2;
j=j+3;
else
msg2[j]=msg1[i];
i++;
j++;
}
msg2[j]='#';
msg2[j+1]='@';
msg2[j+2]='\0';
i=2,j=0;
while(i<strlen(msg2)-2)
msg3[j]='#';
msg3[j+1]='*';
i=i+3;
j=j+2;
msg3[j]='#';
msg3[j+1]='@';
i=i+3;
j=j+2;
}
else
msg3[j]=msg2[i];
i++;
j++;
msg2[j+1]='\0';
printf("\n\n\n ");
return 0;
Output:
6. CRC
#include<stdio.h>
int main()
int i;
for(i=0;i<7;i++)
scanf("%d",&act[i]);
for(i=0;i<5;i++)
scanf("%d",&key[i]);
for(i=7;i<11;i++)
act[i]=0;
for(i=0;i<11;i++)
printf("%d ",act[i]);
for(i=0;i<11;i++)
{
data[i]=act[i];
for(i=0;i<7;i++)
if(act[i]!=0)
act[i+0]=act[i+0]^key[0];
act[i+1]=act[i+1]^key[1];
act[i+2]=act[i+2]^key[2];
act[i+3]=act[i+3]^key[3];
act[i+4]=act[i+4]^key[4];
data[7]=act[7];
data[8]=act[8];
data[9]=act[9];
data[10]=act[10];
printf("\n\nRemainder is : ");
for(i=7;i<11;i++)
printf(" %d ",act[i]);
printf(" %d ",data[i]);
return 0;
Output:
Enter Key
Stuffed data is : 1 0 1 0 1 0 1 0 0 0 0
Remainder is : 0 1 0 0
Data sent is : 1 0 1 0 1 0 1 0 1 0 0
7. Go back N
#include<stdio.h>
void delay()
int c, d;
}
}
int main()
int w,p,packets[50];
int i,cnt,flag=0;
char ch;
scanf("%d",&w);
scanf("%d",&p);
for(i=1;i<=p;i++)
scanf("%d",&packets[i]);
cnt=0;
printf("\n\n-------------------------------------------------------\n");
for(i=1;i<=p;i++)
delay();
fflush(stdin);
scanf("%c",&ch);
if(ch=='n')
printf("\n\n-------------------------------------------------------\n");
i=i-cnt-1;
else
if(i%w==0)
printf("\n\n-------------------------------------------------------\n");
cnt=0;
else
cnt++;
printf("\n\n-------------------------------------------------------");
printf("\n\n\n ");
return 0;
Output:
-------------------------------------------------------
-------------------------------------------------------
Packet 5 ( Data: 50 ) Received?(y/n): y
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
8. Hamming Code
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
int ham[12],ham1[12],i;
int p1,p2,p3,p4;
for(i=1;i<=11;i++)
continue;
else
scanf("%d", &ham[i]);
p1=ham[3]^ham[5]^ham[7]^ham[9]^ham[11];
p2=ham[3]^ham[6]^ham[7]^ham[10]^ham[11];
p3=ham[5]^ham[6]^ham[7];
p4=ham[9]^ham[10]^ham[11];
ham[1]=p1;
ham[2]=p2;
ham[4]=p3;
ham[8]=p4;
for(i=1;i<=11;i++)
for(i=1;i<=11;i++)
for(i=1;i<=11;i++)
for(i=1;i<=11;i++)
scanf("%d",&ham1[i]);
p1=ham1[3]^ham1[5]^ham1[7]^ham1[9]^ham1[11];
p2=ham1[3]^ham1[6]^ham1[7]^ham1[10]^ham1[11];
p3=ham1[5]^ham1[6]^ham1[7];
p4=ham1[9]^ham1[10]^ham1[11];
else
}
printf("\n\n\n ");
return 0;
Output:
void delay()
int c, d;
}
int main()
int w,p,packets[50];
int i,flag=0;
char ch;
scanf("%d",&w);
scanf("%d",&p);
for(i=1;i<=p;i++)
scanf("%d",&packets[i]);
printf("\n\n------------------------------------------------------\n");
for(i=1;i<=p;i++)
delay();
fflush(stdin);
printf("\n\n Packet %d ( Data: %d ) Received?(y/n): ",i,packets[i]);
scanf("%c",&ch);
if(ch=='n')
flag=1;
i--;
else
if(i%w==0)
printf("\n\n------------------------------------------------------\n");
else
printf("\n\n------------------------------------------------------");
printf("\n\n\n ");
return 0;
Output:
------------------------------------------------------
------------------------------------------------------
------------------------------------------------------
------------------------------------------------------
11. Stop and Wait
#include<stdio.h>
void delay()
int c, d;
int main()
char msg[2000];
int i=0;
char ch;
scanf("%s",msg);
while(i<strlen(msg))
delay();
fflush(stdin);
printf("\n Data Received (y/n)?: ");
scanf("%c",&ch);
if(ch=='y')
i++;
else
printf("\n\n ReSending......");
printf("\n\n\n ");
return 0;
Output:
Enter data: hi
Sending data h
Sending data i
ReSending......
Sending data i
#include<stdlib.h>
int main()
int ch;
int n1,n2,n3,n4;
while(1)
scanf("%d",&ch);
switch(ch)
case 1:
scanf("%d.%d.%d.%d",&n1,&n2,&n3,&n4);
dtob(n1,n2,n3,n4);
break;
case 2:
scanf("%d.%d.%d.%d",&n1,&n2,&n3,&n4);
btod(n1,n2,n3,n4);
break;
case 3:
printf("\n\n ");
exit(0);
default:
break;
return 0;
int a1[10],a2[10],a3[10],a4[10];
int i,j,k,l;
for(i=0;n1>0;i++)
a1[i]=n1%2;
n1=n1/2;
}
for(i=i-1;i>=0;i--)
printf("%d",a1[i]);
printf(".");
for(i=0;n2>0;i++)
a2[i]=n2%2;
n2=n2/2;
for(i=i-1;i>=0;i--)
printf("%d",a2[i]);
printf(".");
for(i=0;n3>0;i++)
a3[i]=n3%2;
n3=n3/2;
}
for(i=i-1;i>=0;i--)
printf("%d",a3[i]);
printf(".");
for(i=0;n4>0;i++)
a4[i]=n4%2;
n4=n4/2;
for(i=i-1;i>=0;i--)
printf("%d",a4[i]);
binary_val = n1;
while (n1 > 0)
rem = n1 % 10;
n1 = n1 / 10 ;
base = base * 2;
printf("%d.", decimal_val);
binary_val = n2;
decimal_val = 0;
base = 1;
rem = n2 % 10;
n2 = n2 / 10 ;
base = base * 2;
printf("%d.", decimal_val);
binary_val = n3;
decimal_val = 0;
base = 1;
while (n3 > 0)
rem = n3 % 10;
n3 = n3 / 10 ;
base = base * 2;
printf("%d.", decimal_val);
binary_val = n4;
decimal_val = 0;
base = 1;
rem = n4 % 10;
n4 = n4 / 10 ;
base = base * 2;
printf("%d", decimal_val);
OutPut:
IP ADDRESS....
1.DECIMAL TO BINARY
2.BINARY TO DECIMAL
3.EXIT
IP ADDRESS....
1.DECIMAL TO BINARY
2.BINARY TO DECIMAL
3.EXIT