#include <stdio.h>
#include <math.h>
int main(void) {
// your code goes here
int i,j,k;
double pi = atan(1.0)*4;
//pi=3.14;
//printf("%.50lf",pi);
double mant = pi / 2.0;
mant = mant -1.0;
double expon = log2(2.0);
expon = expon + 127.0;
expon = log2(expon);
int expon_arr[8];
for(i=0;i<8;i++)
{
if(i==expon)
{
expon_arr[i] = 1;
}
else
{
expon_arr[i] = 0;
}
}
double temp,diff=0,acc=0;
double mant_coef[21];
int mant_bin[21];
mant_coef[0]=0;
for(i=1;i<21;i++)
{
mant_coef[i]=(double)(1.0/pow(2.0,i));
//printf("%lf",mant_coef[i]);
}
for(i=0;i<21;i++)
{
diff= (mant_coef[i+1] - mant_coef[i]);
if(diff<0)
{
diff = diff * (-1.0);
}
if(diff<mant)
{
mant_bin[i]=1;
mant = mant - diff;
}
else
{
mant_bin[i]=0;
}
//printf("%d,,,%lf,,,%lf,,,%lf\r\n",i,diff,mant,mant_coef[i]);
}
//printf("%lf\r\n",expon);
printf("binary rep. of pi:");
for(i=7;i>=0;i--)
{
printf("%d",expon_arr[i]);
}
printf(".");
for(i=0;i<21;i++)
{
printf("%d",mant_bin[i]);
}
return 0;
}
Terminal Output eklenecek
No comments:
Post a Comment