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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

IEEE754浮点数的转换源代码:#includeiostreamusingnamespacestd;inta[33],b[33],*pa=a,*pb=b;//*********整数转换为二进制函数*****//voidzhuanhuazhengshu(intx){intm,i;for(i=0;;i++){*(pa+i)=x%2;m=x/2;x=m;if(m==0){*(pa+32)=i;break;}}for(intj(0);j=i;j++)*(pb+j)=*(pa+i-j);}//********小数转换为二进制函数******//voidzhuanhuaxiaoshu(floatx){for(inti(0);i33;i++)*(pb+i)=0;doublem=x*2;for(i=0;i=22;i++){if(m1){*(pb+i)=0;m*=2;continue;}if(m=1){*(pb+i)=1;m-=1;m*=2;}}}//***********输出函数*************//voidshuchu(intjieguo[],intE){inta16[8];inta[5]={0,8,4,2,1};coutIEEE754格式表示为:;intn(1);for(inti=1;i=32;i++,n++){coutjieguo[i];if(n%4==0)cout;}coutendlendl;for(i=0;i=7;i++){intsum(0);for(intj(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]);}coutendlendl;}//********主函数*********//voidmain(){floatx,jueduizhi;intjieguo[33],jiema[8],zheng[33],xiaoshu[23],E,counter,flag,zhengshu;cout请输入一个数:endl;cinx;coutendl;if(x==0){cout输入错误,请从新输入!!!!endl;}else{if(x0)jueduizhi=x;if(x0)jueduizhi=-x;zhengshu=jueduizhi;if(zhengshu=1){zhuanhuazhengshu(zhengshu);flag=a[32];for(inti(0);i=flag;i++)zheng[i]=b[i];inte=a[32];E=e+127;}floatxiao_shu=jueduizhi-zhengshu;zhuanhuaxiaoshu(xiao_shu);if(zhengshu==0){for(inti=0;;i++){if(b[i]==0)counter++;elsebreak;}for(i=counter;i=counter+23;i++)xiaoshu[i-counter]=b[i];E=127-counter-1;}if(zhengshu=1)for(inti=0;i=22;i++)xiaoshu[i]=b[i];zhuanhuazhengshu(E);intflagj=a[32];if(flagj7){for(inti(0);i7-flagj;i++)jiema[i]=0;for(i=7-flagj;i=7;i++)jiema[i]=b[i-7+flagj];}elsefor(inti=0;i=7;i++)jiema[i]=b[i];jieguo[0]=0;if(x0)jieguo[1]=0;elsejieguo[1]=1;for(inti=2;i=9;i++)jieguo[i]=jiema[i-2];if(flag=22){for(i=0;i=flag-1;i++)jieguo[10+i]=zheng[i+1];for(inti=10+flag;i=32;i++)jieguo[i]=xiaoshu[i-10-flag];}elsefor(inti=10;i=32;i++)jieguo[i]=zheng[i-10+1];shuchu(jieguo,E);}}结果显示:

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功