浮点数表示及运算规则

在下小小酥,这是小酥的第一篇博文,浅陋的学生一枚,如有不对,谢谢各路大神指正。
一:浮点数的表示
对于任意一个二进制数N,可用N=M×2^E表示,其中M为尾数,P为阶码,2为阶码的底,M、E都用二进制数表示,M表示N的全部有效数字,E指明小数点的位置。当阶码为固定值时,数的这种表示法称为定点表示,这样的数称为“定点数”;当阶码为可变时,数的这种表示法称为浮点表示,这样的数称为“浮点数”.
对于·浮点数,我觉得掌握浮点数组成中的两部分即可:其一是阶码,其二是尾数,理解两者的概念和表示方法即可。


- 浮点数的组成:
阶符+阶码(E)+数符(S)+尾数(M)
本篇始终以将(41360000)16转化成浮点数的表示形式为例来解释相关概念
(41360000)16=0(数符S)100 0001 0(阶码E=130)*
011 0110 0000 0000 0000 0000*(尾数M)
X=(-1)^s *1.M *2^(E-127)


在计算机中阶码和尾数可以用将多种形式来表示(原码、补码、反码)为了保证计算-机之间信息交换的稳定性,制定了—IEEE754—标准(有32位和64位两种表示格式)
<1>阶码

  • 阶码的表示形式:阶码用变形的移码(移码减一)来表示,用移码来表示的目的是为了保证浮点数的机器零为全0。–IEEE754标准是用变形的移码,如果不标准的则可以用标准移码来表示。

移码E

  • 移码的计算方法:移码通过符号位求反来得到阶码或者利用公式[X]移=2^n+X
  • 移码的运算法则:[X]补+[Y]移=[X+Y]移
    举例子:[-3+5]移=[-3]补+[+5]移=11111101+10000101=10000010=[2]移
  • 移码符号位:在移码符号位中1表示移码为正,0表示移码为负
  • 移码判别溢出:利用双符号位最高位来判断溢出。最高位1(溢出)、0(不溢出)
    同上例:[-3+5]移=[-3]补+[+5]移=111111101+110000101=010000010,最高符号位为0,不发生溢出
  • 移码E的表式范围是:1~254,对于32位规格化浮点数,真正的指数值e为-126
  • ~+127。

<2>尾数M

  • 规格化:规范的形式是0.1xx或者1.0xxx,如果不是这种形式,可以通过左右移动小数点来实现规范化—小数点左移n位,阶码+n;小数点右移n位,阶码-n。

  • 隐藏位:规定在首位会隐藏一

<3>例题:由S、E、M组成一个32进制数所表示的非零规格化浮点数X,真值表表示为(非IEEE754标准)则其可表示的:

  • 最大正数:X=[1+(1-2^23)] *2^127
  • 最小正数:X=1.0.*2^(-128)
  • 最大负数:X=-[1+(1-2^23)] *2^127
  • 最小负数:X=-1.0.*2^(-128)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值