浮点32位16进制和10进制转换

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

小数部分(0.625)的计算:

0.625*2=1.25--------1

0.25 *2=0.5 ----------0

0.5 *2=1.0 -----------1

所以用二进制科学表示方式为:1.001101*2^3

)

实数与浮点数之间的变换举例例一:已知一个单精度浮点数用16进制数表示为:

0xC0B40000,求此浮点数所表达的实数。

先转换为二进制形式(注意:对于负数二进制补码转换成十进制一定要:先取反,后加1)

C 0 B 4 0 0 0 0

1100 0000 1011 0100 0000 0000 0000 0000

按照浮点数格式切割成相应的域1 1000 0001 01101 000000000000000000

经分析:符号域1 意味着负数;指数域为129 意味着实际的指数为2 (减去偏差值127);尾数域为01101 意味着实际的二进制尾数为1.01101 (加上隐含的小数点前面的1)。所以,实际的实数为:

= -1.01101 × 2^ 2=- ( 1*2^0 + 1*2^(-2) + 1*2^(-3) + 1*2^(-5) ) × 2^2

= -(1+0.25+0.125+0.03125)*4

= -1.40625*4

= -5.625

例二:将实数-9.625变换为相应的浮点数格式。

1) 求出该实数对应的二进制:1001.101,用科学技术法表达为:-1.001101 ×2^3;

2) 因为负数,符号为1;

3) 指数为3,故指数域的值为3 + 127 = 130,即二进制的10000010;

4) 尾数为1.001101,省略小数点左边的1后为001101,右侧0补齐,补够23位,

最终尾数域为:00110100000000000000000;

5) 最终结果:1 10000010 00110100000000000000000,用16进制表示:

0xC11A0000。

相关文档
最新文档