王道机组笔记IEEE754

本文详细解析了IEEE754标准中移码的使用原理,包括为何采用补码形式、偏置值的选择以及如何通过例子演示-127和-3的移码计算。还介绍了浮点数的数符、阶码和尾数表示,以及单精度浮点数的转换方法,以-0.75为例进行说明。最后通过C0A00000H的实例展示如何计算其实际值。
摘要由CSDN通过智能技术生成

浮点数标准IEEE754(读法:I tripleE 754)

在IEE754当中,阶码是用移码的方式表示的,移码只能用于表示整数,而阶码也必须是整数

回顾(移码:补码的基础上将符号位取反)

移码的定义:移码=真值+偏置值

大致流程:

用二进制来写出要表示的那个数的真值,进行加减操作前,真值需要转化为补码,然后再加上一个所谓的偏置值

例:求出-127所对应的的移码,具体步骤如下:

  1. 先用二进制表示出-127的真值-1111111B
  2. 在计算机内部,所有带符号整数的加减法运算都要先转化为补码,因此在进行真值和偏置值的相加运算之前,应该把真值转换为对应的补码
  3. 对于-1111111
  4. 原码:11111111 反码:1000000 补码:10000001
  5. 然后加上规定的偏置值【规定移码为8位,偏置值就等于2^(n-1)】2的8-1次方得128,偏置值也用二进制表示为10000000
  6. 将真值对应的补码与偏置值进行相加运算得到对应的移码
  7. 10000001+10000000=00000001(溢出来一个1,舍弃)

 

例:求出-3对应的移码,具体步骤如下:

  1. 先用二进制表示-3的真值,得到-11B
  2. 求出-11B对应的补码
  3. 原码10000011(因为表示的是整数,并且移码的位数是8位,因此需要在符号位后面补上五个0)反码:11111100补码:11111101
  4. 然后加上规定的偏置值【规定移码为8位,偏置值就等于2^(n-1)】2的8-1次方,偏置值也用二进制表示为10000000
  5. 将真值对应的补码与偏置值进行相加运算得到对应的移码
  6. 11111101+10000000=01111101(溢出一个1,舍弃)

当我们在确定一个移码的表示方案时,首先要确定的是一个偏置值。

 

为啥移码遵循在补码的基础上将符号位取反呢?

因为,偏置值一般取2^(n-1),此时移码=补码符号位取反

 

当然偏置值也可以取其他值

IEEE754遵循的就是偏置值为2^(n-1)-1,如果是8位移码,偏置值就是2^(8-1)-1=127。

这种方案对应的所有移码可以由偏置值为128对应的移码-1得到。

 

对图像进行分析:

数符表示了整个浮点数的正负性

阶码全1对应的是-128,阶码全0对应的是-127(在表示范围时具有特殊作用)

8f9fd66941b34378801b487a1e61ec19.png

偏置值等于2的n-1次方-1,这里的n就是阶码的位数,在IEEE754当中,阶码位数固定是8

E-127中的E是用十进制表示的阶码

对于一个浮点数来说,如果它的尾数是用原码来表示的,我们希望它的第一个有效的数值位是1,所以我们就默认在尾数之前隐藏了一个最高位1(这样做就不用再去规格化处理了),因此虽然规定浮点数尾数是23位,但实际上是有24位的,只不过隐藏了最高位的1,1.M才是尾数表示的真正数值。

数符位、阶码位、尾数数值位各占多少位考试当中是不会说的,需要记住。

在进行移码-偏移量的操作中,可以把移码和偏移量看作是无符号数(就是把这些二进制数转化为十进制数再来进行减法操作)

 

例:将十进制-0.75转换为IEEE754的单精度浮点格式表示。

首先单精度浮点格式满足1+8+23的格式

把-0.75转换为二进制的形式:-0.11,由于尾数部分隐藏表示最高位为1,所以需要对-0.11进行规格化→-1.1X2^-1(X2^-1表示小数点要前移一位),这样就完成了规格化处理。

由于这个数是负数,所以数符取1

尾数部分=.1000000......第一位是1,后面全部都是0,凑够23位(隐含最高位1,补上这个1的话就变成了1.1000000......,和规格化后得到的二进制数一致)

阶码真值=-1(2的-1次方中的-1)

db819a4bd7694fb3a753f50d0293d1cf.png

 

 

最后我们将得到的数符、用移码表示的阶码、尾数数值结合在一起就得到了用IEEE754单精度浮点数格式表示的十进制数-0.75

1 01111110 10000000000000000000000

例:IEEE754的单精度浮点数C0A00000H的值是多少? 

先把16进制转换为2进制

d807a350137948058dffd27765d461b5.jpeg

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值