ad

Tuesday, 3 January 2012

bcd to decimal and decimal to bcd conversion

//PROGRAM FOR BCD
#include
#include
#include
#include
#include
void conv(int q)
{
int r,l=0,t=0;
while(q!=0)
{
r=q%10;
q=q/10;
t+=r*pow(2,l);
l=l+1;
}
printf(" %d",t);
}

void readbin(char* bin)
{
printf("\nEnter the binary value: ");
scanf("%s",bin);
}

void readdig(char* bin)
{
printf("\nEnter the decimal value :");
scanf("%s",bin);
}

void check(char* bin,int flag)
{
int i;
for(i=0;bin[i]!='\0';i++)
{
if(bin[i]!='1'&&bin[i]!='0')
{
flag=1;
printf("\nPlease enter a valid input....\n");
getch();
exit(0);
}
}
}

void bcd(char* bin,char* z,char* temp,int flag)
{
int q,i,x,rem;
if(flag==0)
{
x=strlen(bin);
rem=x%4;
if(rem==0)
{
i=0;
while(bin[i]!='\0')
{
strncpy(temp,&bin[i],4);
q=atoi(temp);
i=i+4;
conv(q) ;
}
}
else if(rem!=0)
{
for(i=0;i<4-rem;i++)
z[i]=48;
strcpy(&z[i],bin);
i=0;
while(z[i]!='\0')
{
strncpy(temp,&z[i],4);
q=atoi(temp);
i=i+4;
conv(q) ;
}
}
}
}

void checkdig(char* bin,int flag)
{
int i,x;
for(i=0;bin[i]!='\0';i++)
{
x=isdigit(bin[i]);
if(x==0)
{
flag=1;
printf("\nPlease enter a valid input.....\n");
getch();
exit(0);
}
}
}

void convert(int x)
{
int a[4],i;
for(i=0;i<4;i++)
a[i] =0;
i=3;
while(x>0)
{
a[i]=x%2;
i--;
x=x/2;
}
for(i=0;i<4;i++)
printf("%d",a[i]);
printf("\t");
}
void decimal(char* bin,int flag)
{
int l,i,x;
char s;
if(flag==0)
{
l=strlen(bin) ;
for(i=0;i {
s=bin[i];
x=s-48;
convert(x);
}
}
}

void main()
{
char bin[50],z[50],temp[4],ch;
int x,rem,flag,t;
clrscr();
printf("\n\t\t****BCD****\n\t\t\n\n\n");
do
{
flag=0;
printf("\tEnter the choice:\n\n\t\t1: BCD-DECIMAL\n\t\t2:DECIMAL-BCD\n\t\t\t:");
scanf("%d",&t);
switch(t)
{
case 1:
{
temp[4]='\0';
readbin(bin);
check(bin,flag);
printf("\nThe decimal value is :");
bcd(bin,z,temp,flag);
break;
}
case 2:
{
readdig(bin);
checkdig(bin,flag);
printf("\nThe bcd is : ");
decimal(bin,flag);
break;
}
default:printf("\n\t\tPlease enter a valid input....");
break;
}
printf("\n\n\t\tDo you want to continue [y/n] ?.... \n\n");
ch=getch();
}while(ch=='y'||ch=='Y');
exit(0);
getch();
}

No comments:

Post a Comment