收藏 分销(赏)

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

上传人:天**** 文档编号:2267828 上传时间:2024-05-24 格式:DOC 页数:4 大小:93.01KB 下载积分:5 金币
下载 相关 举报
计算机组成原理IEEE754浮点数的转换程序源代码.doc_第1页
第1页 / 共4页
计算机组成原理IEEE754浮点数的转换程序源代码.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
IEEE754浮点数的转换 源代码: #include<iostream> 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<<"IEEE754格式表示为:"; int n(1); for(int i=1;i<=32;i++,n++) { cout<<jieguo[i]; if(n%4==0) cout<<" "; } cout<<endl<<endl; 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<<endl<<endl; } //********主函数*********// void main() { float x,jueduizhi; int jieguo[33],jiema[8],zheng[33],xiaoshu[23], E,counter,flag,zhengshu; cout<<"请输入一个数:"<<endl; cin>>x; cout<<endl; if(x==0) { cout<<"输入错误,请从新输入!!!!"<<endl; } 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;i<=7;i++) jiema[i]=b[i]; jieguo[0]=0; if(x>0) jieguo[1]=0; else jieguo[1]=1; for(int i=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(int i=10+flag;i<=32;i++) jieguo[i]=xiaoshu[i-10-flag]; } else for(int i=10;i<=32;i++) jieguo[i]=zheng[i-10+1]; shuchu(jieguo,E); } } 结果显示:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服