IEEE754单精度标准下,十进制数字与机器码的互转

   日期:2020-05-11     浏览:259    评论:0    
核心提示:IEEE754单精度标准下,十进制数字与机器码的互转IEEE754标准(单精度):十进制数字 ⇒ 机器码机器码 ⇒ 十进制数字IEEE754标准(单精度):机器码一共32位,其中:数符号1位(1负数,0正数);阶码8位(移码);尾数23位(补码)。特别注意1:这里阶码的移码与定点数中的移码略有所不同,定点数的移码可以由补码取反符号位得来(偏移128),而这里是偏移127特别注意2:尾数的最高位默认1,所以这个1可以省略不写十进制数字 ⇒ 机器码以-8.25为例来说明:数值为负,符号位为1;

IEEE754单精度标准下,十进制数字与机器码的互转

  • IEEE754标准(单精度):
  • 十进制数字 ⇒ 机器码
  • 机器码 ⇒ 十进制数字

IEEE754标准(单精度):

机器码一共32位,其中:
数符号1位(1负数,0正数);阶码8位(移码);尾数23位(补码)。

特别注意1:这里阶码的移码与定点数中的移码略有所不同,定点数的移码可以由补码取反符号位得来(偏移128),而这里是偏移127

特别注意2:尾数的最高位默认1,所以这个1可以省略不写

十进制数字 ⇒ 机器码

以-8.25为例来说明:
数值为负,符号位为1;
正数部分8D = 1000B,小数0.25=0.01B。所以,-8.25D=1000.01B。根据标准,规格化,
1000.01B
= 1.00001 * (2)^ (3 D)

尾数为补码,正数化为.01XXX形式,负数为1.0XXX形式,规格化时候需要注意

阶码这里取值为3D,化为移码形式,E-127=3,所以
E = 130D = 1000 0010

利用 E-127=次方数 这个公式,求得E,再把E直接化为二进制数字,即为阶码的移码

下面继续处理尾数,
尾数原码000 0100 0000 0000 0000 0000B,
转化为补码: 000 0100 0000 0000 0000 0000B (正数原码=补码)

所以,把所有连接起来,-8.25的机器数为:
1 1000 0010 000 0100 0000 0000 0000 0000B

读者可以用现在转换工具自行验证结果的正确性:
在线转换工具

机器码 ⇒ 十进制数字

下面反过来,用机器码转化为十进制数字,
以 41A4C000H为例
先把16进制转化为二进制:
41A4C000H = 0100 0001 1010 0100 1100 0000 0000 0000B

首位为0 所以确认这个数字为正数;

阶码为100 0001 1B = 131D,所以E = 131,
阶数 = 131 -127 = 4;

尾数补码=.010 0100 1100 0000 0000 0000B
尾数原码=1.010 0100 1100 0000 0000 0000B (添补上省去的1)

所以,数字为1.010010011 * 2^4 (4次方相当于右移4位)= 10100.10011=20.59375

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服