# include<stdio.h>
int float_to_int(float f)
{
int p=*(int*)&f;
int sign=0;
int exp=0;
int i;
int mag=0;
int k;
if(p>>31)
{
sign=1;
}
exp=p&0x7f800000;
exp>>=23;
exp-=127;
if(exp>0)
{
i=1<<exp;
mag=p&0x7fffff;
while(--exp>=0)
{
mag<<=1;
k=(((mag&0x800000)!=0)?1:0);
i+=k<<exp;
}
if(sign==1)
{
i=-1;
}
}
if(exp==0)
{
i=1;
if(sign==1)
{
i=-1;
}
}
return i;
}
int main()
{
printf("%d\n",float_to_int(15.5));
}
int float_to_int(float f)
{
int p=*(int*)&f;
int sign=0;
int exp=0;
int i;
int mag=0;
int k;
if(p>>31)
{
sign=1;
}
exp=p&0x7f800000;
exp>>=23;
exp-=127;
if(exp>0)
{
i=1<<exp;
mag=p&0x7fffff;
while(--exp>=0)
{
mag<<=1;
k=(((mag&0x800000)!=0)?1:0);
i+=k<<exp;
}
if(sign==1)
{
i=-1;
}
}
if(exp==0)
{
i=1;
if(sign==1)
{
i=-1;
}
}
return i;
}
int main()
{
printf("%d\n",float_to_int(15.5));
}