IEEE里面关于移码的

为什么IEEE754对阶码要用移码表示,而且对移码的定义是加上了2^n-1。和我们普通意义上面的移码少了1?

       我真心理解不了了。百度了下,我擦,居然还有几个字母,我都没理解是啥。看看https://zhidao.baidu.com/question/590840992.html

http://blog.csdn.net/k346k346/article/details/50487127这个应该是原创的

1、为什么和定点数的移码偏置值不同,定点数是2^n,浮点数是2^n-1
2、而且为什么范围是1~254(8位),按理说不应该是0~255吗?

对于阶码为0或255的情况, IEEE754标准有特别的规定:
如果 E 是0 并且 M 是0,则这个数的真值为±0(正负号和数符位有关) 如果 E = 255 并且 M 是0,则这个数的真值为±∞(同样和符号位有关) 如果 E = 255 并且 M 不是0,则这不是一个数(NaN)。
短浮点数和长浮点数(不含临时浮点数)的存储在尾数中隐含存储着一个1,因此在计算尾数的真值时比一般形式要多一个整数1。对于阶码E的存储形式因为是127的偏移,所以在计算其移码时与人们熟悉的128偏移不一样,正数的值比用128偏移求得的少1,负数的值多1,为避免计算错误,方便理解,常将E当成二进制真值进行存储。例如:将数值-0.5按IEEE754单精度格式存储,先将-0.5换成二进制并写成标准形式:-0.5(10进制)=-0.1(2进制)=-1.0×2-1(2进制,-1是指数),这里s=1,M为全0,E-127=-1,E=126(10进制)=01111110(2进制),则存储形式为:
1 01111110 000000000000000000000000=BF000000(16进制)
这里不同的下标代表不同的进制。


理解:对比下,假设不是IEEE754的规定的话。

       x=S*r^j 首先浮点机是可以存放原码/补码/反码,至于移码虽然没有说,但是IEEE754这里规定了,说明可以存放移码。浮点机表示的数字有范围,上溢会停止运算,下溢会将S全部置0,按机器0处理。

       晕,原理解有误,删掉。

补码complemental code
反码ones-complement code
移码 frame shift
阶符exponent character
阶码exponent-marker
尾数mantissa

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值