#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<math.h>
void main()
{
int a[20],b[20];
int i,j,k,cntint,cntfra,flag,rem;
float rem1;
char s[20];
cntint=cntfra=flag=rem=0;
rem1=0.0;
clrscr();
printf("Enter the binary no : ");
scanf("%s",s);
for(i=0,j=0,k=0;i<strlen(s);i++)
{
if(s[i]=='.')
{
flag=1;
}
elseif(flag==0)
a[j++]=s[i]-48;
elseif(flag==1)
b[k++]=s[i]-48;
}
cntint=j;
cntfra=k;
for(j=0,i=cntint-1;j<cntint;j++,i--)
{
rem = rem + (a[j] * pow(2,i));
}
for(k=0,i=1;k<cntfra;k++,i++)
{
rem1 = rem1 + (b[k] / pow(2,i));
}
rem1 = rem + rem1;
printf("\nThe decimal value of the given binary is : %f",rem1);
getch();
}
/* OUTPUT
-------------------------------------------------------
Enter the binary no : 1001.001
The decimal value of the given binary is :9.125000
*/