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

您所在的位置:网站首页 7eh表示的十进制数是 IEEE754单精度标准下,十进制数字与机器码的互转

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

2024-07-01 19:16| 来源: 网络整理| 查看: 265

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3