全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 32位IEE754浮点格式对于大小为32-bit的浮点数(32-bit为单精度,64-bit浮点数为双精度,80-bit为扩展精度浮点数),1、其第31 bit为符号位,为0则表示正数,反之为复数,其读数值用s表示;2、第3023 bit为幂数,其读数值用e表示;3、第220 bit共23 bit作为系数,视为二进制纯小数,假定该小数的十进制值为x;十进制转浮点数的计算方法:则按照规定,十进制的值用浮点数表示为:如果十进制为正,则s = 0,否则s = 1;将十进制数表示成二进制,然后将小数点向左移动,直到这个数变为1.x的形式即尾数,移动的个数即为指数。为了保证指数为正,将移动的个数都加上127,由于尾数的整数位始终为1,故舍去不做记忆。对3.141592654来说,1、正数,s = 0;2、3.141592654的二进制形式为正数部分计算方法是除以二取整,即得11,小数部分的计算方法是乘以二取其整数,得0.0010 0100 0011 1111 0110 1010 1000,那么它的二进制数表示为11.0010 0100 0011 1111 0110 1010 1;3、将小数点向左移一位,那么它就变为1.1001 0010 0001 1111 1011 0101 01,所以指数为1+127=128,e = 128 = 1000 0000;4、舍掉尾数的整数部分1,尾数写成0.1001 0010 0001 1111 1011 0101 01,x = 921FB65、最后它的浮点是表示为0 1000 0000 1001 0010 0001 1111 1011 0101 = 40490FDA/- / 十进制转换为32位IEE754浮点格式/-void ConvertDexToIEE754(float fpointer,ModRegisterTpyedef *SpModRegister) double integer,decimal; unsigned long bininteger,bindecimal; Uint8 _power,i; decimal = modf(fpointer,&integer); if(decimal | integer) bindecimal = decimal * 0x800000; /223 while(bindecimal & 0xff800000) 0) bindecimal = 1; if(integer 0) bininteger = integer; for(i=0;i= 0x1; bininteger = integer; bininteger &= (0x1 = 23) /如果幂指数23 则舍弃小数位部分 bininteger = (_power-23); bindecimal = 127+_power; bininteger |= bindecimal 23; else bininteger = _power; bininteger |= bindecimal; bindecimal = 127+_power; bininteger |= bindecimal 23; else if(integer = 0) bindecimal = 9; _power = 0; bininteger = bindecimal; while(bininteger = (bindecimal1) _power+; bindecimal = 0x1; bininteger = bindecimal; _power+; bindecimal = 9; bininteger = bindecimal; bindecimal = 127-_power; bininteger |= bindecimal RegBytei+ = (bininteger 24) & 0xff; SpModRegister-RegBytei+ = (bininteger 16) & 0xff; SpModRegister-RegBytei+ = (bininteger 8 ) & 0xff; SpModRegister-RegBytei+ = bininteger & 0xff; 浮点数转十进制的计算方法:则按照规定,浮点数的值用十进制表示为: (-1)s * (1 + x) * 2(e 127)对于49E48E68来说,1、其第31 bit为0,即s = 02、第3023 bit依次为100 1001 1,读成十进制就是147,即e = 147。3、第220 bit依次为110 0100 1000 1110 0110 1000,也就是二进制的纯小数0.110 0100 1000 1110 0110 1000, 其十进制形式为 (0.110 0100 1000 1110 0110 1000 * 223) / (223) = (0x49E48E68 & 0x007FFFFF) / (223) = (0x648E68) / (223) = 0.78559589385986328125,即x = 0.78559589385986328125。这样,该浮点数的十进制表示=(-1)s * (1 + x) * 2(e 127)=(-1)0 * (1+ 0.78559589385986328125) * 2(147-127)= 1872333*/- / 32位IEE754浮点格式转换为十进制/-float ConvertIEE754ToDex(ModRegisterTpyedef *SpModRegister) double x,fpointer; unsigned long bininteger,bintmp; Uint8 _power,i=0,s; /* 该浮点数的十进制表示 =(-1)s * (1 + x) * 2(e 127) =(-1)0 * (1+ 0.78559589385986328125) * 2(147-127) = 1872333 */ bintmp = SpModRegister-RegBytei+ RegBytei+; bininteger = SpModRegister-RegBytei+ RegBytei+; bininteger |= bintmp 23; _power = bintmp & 0xff; bintmp = bininteger & 0x80000000; s = (bintmp) ? 1 : 0 ; bintmp = pow(2, abs(_power-127) ; if(_power = 127) fpointer = (1+x) * bintm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浅论当代隶书创作碑与简的融合
- 论文发表专家意见评语
- 互联网医疗纳入医保支付的风险与对策分析
- 评语大全之毕设答辩评语
- 2021年第19届NOC-Python赛项选拔赛(含答案)
- 基于ADAMS的驾驶室悬置优化设计
- 浅论《萧萧》中的主人公形象
- 西南大学全日制工程硕士专业学位研究生培养方案【模板】
- 函授会计毕业论文
- 中考作文议论文真题5
- 《陌生拜访技巧》课件
- 电梯施工配合措施
- 2025年1月广西2025届高三调研考试历史试卷(含答案详解)
- 增项合同范本
- 学生宿舍节能照明改造方案
- 牵引变电所安装
- 【粤教版】四年级全一册《劳动与技术》第3单元 活动2 《炒饭、煮面条》 课件
- 军事理论知识竞赛考试题库300题(含答案)
- 英语口语直通车(浙江理工大学)知到智慧树章节答案
- 之 第十六讲 文明新路与人类命运共同体-《中华民族共同体概论》大讲堂
- 标杆车间规划
评论
0/150
提交评论