计算机组成原理float转int,计算机组成原理IEEE754浮点数的转换程序源代码.doc

计算机组成原理IEEE754浮点数的转换程序源代码

IEEE754浮点数的转换

源代码:

#include

using namespace std;

int a[33],b[33],*pa=a,*pb=b;

//*********整数转换为二进制函数*****//

void zhuanhuazhengshu(int x)

{

int m,i;

for(i=0;;i++)

{

*(pa+i)=x%2;

m=x/2;

x=m;

if(m==0)

{

*(pa+32)=i;

break;

}

}

for(int j(0);j<=i;j++)

*(pb+j)=*(pa+i-j);

}

//********小数转换为二进制函数******//

void zhuanhuaxiaoshu(float x)

{

for(int i(0);i<33;i++)

*(pb+i)=0;

double m=x*2;

for( i=0;i<=22;i++)

{

if(m<1)

{

*(pb+i)=0;

m*=2;

continue;

}

if(m>=1)

{

*(pb+i)=1;

m-=1;

m*=2;

}

}

}

//***********输出函数*************//

void shuchu(int jieguo[],int E)

{

int a16[8];

int a[5]={0,8,4,2,1};

cout<

int n(1);

for(int i=1;i<=32;i++,n++)

{

cout<

if(n%4==0)

cout<

}

cout<

for( i=0;i<=7;i++)

{

int sum(0);

for(int j(1);j<=4;j++)

sum+=jieguo[i*4+j]*a[j];

a16[i]=sum;

}

cout<

for( i=0;i<=7;i++)

{

printf("%x",a16[i]);

}

cout<

}

//********主函数*********//

void main()

{

float x,jueduizhi;

int jieguo[33],jiema[8],zheng[33],xiaoshu[23],

E,counter,flag,zhengshu;

cout<

cin>>x;

cout<

if(x==0)

{

cout<

}

else

{

if(x>0) jueduizhi=x;

if(x<0) jueduizhi=-x;

zhengshu=jueduizhi;

if(zhengshu>=1)

{

zhuanhuazhengshu(zhengshu);

flag=a[32];

for(int i(0);i<=flag;i++)

zheng[i]=b[i];

int e=a[32];

E=e+127;

}

float xiao_shu=jueduizhi-zhengshu;

zhuanhuaxiaoshu(xiao_shu);

if(zhengshu==0)

{

for(int i=0;;i++)

{

if(b[i]==0)

counter++;

else

break;

}

for( i=counter;i<=counter+23;i++)

xiaoshu[i-counter]=b[i];

E=127-counter-1;

}

if(zhengshu>=1)

for(int i=0;i<=22;i++)

xiaoshu[i]=b[i];

zhuanhuazhengshu(E);

int flagj=a[32];

if(flagj<7)

{

for(int i(0);i<7-flagj;i++)

jiema[i]=0;

for( i=7-flagj;i<=7;i++)

jiema[i]=b[i-7+flagj];

}

else

for(int i=0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值