《浮点32位16进制和10进制转换(共2页).doc》由会员分享,可在线阅读,更多相关《浮点32位16进制和10进制转换(共2页).doc(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上1.十进制数形式由数码0 9和组成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均为合法的。2.指数形式由,加“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为a E n (a为,n为十进制整数)其值为 a*10,n如: 2.1E5 (等于2.1*10的5次方), 3.7E-2 (等于3.7*10的-2次方)0.5E7 (等于0.5*10的7次方), -2.8E-2 (等于-2.8*10的-2次方),以下不是合法的实数 345 (无小数点)E7 (标志E之前无数字) -5 (无阶码标志)53.-E3 (负号位置不对
2、)2.7E (无阶码)标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为。如356f和356.是等价的。例2.2说明了这种情况:void main()printf(%fn%fn,356.,356f);标准4字节浮点型在计算机里存储方式如下图IEEE754标准中浮点数表示格式IEEE规定的浮点数表示法是一种,用符号(正或负)、指数和尾数来表示,底数被确定为2。也就是说浮点数被表示为乘以2的指数次方再带上符号。具体格式如下:符号域指数域小数域指数偏移量单精度浮点数1 位318位30-2323位22-00127双精度浮点数1 位6311 位62-5252 位51-001023下面以单精度浮点
3、数为例来介绍浮点数的三个区域:符号域:符号域占1位,0表示,1表示负数。指数域:指数域共有8位,可表达的范围为:0255。为能处理负指数,实际指数位存储在指数域中值减去一个偏移量(单精度为127,双精度为1023)。的偏移量为127,故实际可表达的指数值的范围为-127128。域:尾数域共有23位。由于规范浮点数的小数点左侧必须为1,所以在保存尾数时,可以省略小数点前面这个1,从而腾出一个二进制位来保存更多的尾数。举例:比如对于数而言,二进制的1001.101(对应于的9.625)可以表达为1. 23,所以实际保存在域中的值为0011 0100 0000 0000 0000 000,即去掉小数
4、点左侧的1,并用0 在右侧补齐。(9)的计算:1001小数部分(0.625)的计算:0.625*2=1.25-10.25 *2=0.5 -00.5 *2=1.0 -1所以用二进制科学表示方式为:1.*23)实数与浮点数之间的变换举例例一:已知一个用16数表示为:0xC0B40000,求此浮点数所表达的实数。先转换为二进制形式(注意:对于转换成一定要:先取反,后加1)C 0 B 4 0 0 0 01100 0000 1011 0100 0000 0000 0000 0000按照浮点数格式切割成相应的域1 1000 0001 01101 经分析:符号域1 意味着;指数域为129 意味着实际的指数为
5、2 (减去偏差值127);尾数域为01101 意味着实际的二进制尾数为1.01101 (加上隐含的小数点前面的1)。所以,实际的实数为:= -1.01101 2 2=- ( 1*20 + 1*2(-2) + 1*2(-3) + 1*2(-5) ) 22= -(1+0.25+0.125+0.03125)*4= -1.40625*4= -5.625例二:将实数-9.625变换为相应的浮点数格式。1) 求出该实数对应的二进制:1001.101,用科学技术法表达为:-1. 23;2) 因为,符号为1;3) 指数为3,故指数域的值为3 + 127 = 130,即二进制的;4)为1.,省略小数点左边的1后为,右侧0补齐,补够23位,最终尾数域为:0;5) 最终结果:1 0,用16表示:0xC11A0000。专心-专注-专业