计算机中的定点和浮点表示


N = S * r^j;     S为尾数,j为阶码,r为基数 【在计算机中,尾数为小数,可正可负且正负决定了整个数的正负,阶码为整数,也可正可负】
r可以取2、4、8、16等,当r取4的时候,尾数中的两位二进制数表示尾数中的一位四进制数,以此类推。

问题:一个n位长的尾数,和m位长的阶码的浮点表示,能表示的最大的负数,最小的负数,最小的正数和最大的正数。尾数为原码表示
  • 最小的负数:尾数为1,1...1,阶码为0,1...1
  • 最大的负数:尾数为1,0...1,阶码为0,1...1
  • 最小的正数:尾数为0,0...1,阶码为1,0...0
  • 最大的正数:尾数为0,1...1,阶码为0,1...1
  • 当一个数在0到最小的正数和最大负数之间的时候,称为下溢,当一个数小于最小负数或者大于最大正数的时候,称为上溢
  • 当一个数下溢的时候,按照机器0处理,当一个数上溢的时候,会按照计算出错处理。

问题:浮点数的规格化形式
  • r = 2,尾数最高位为1
  • r = 4,尾数最高两位不全为0
  • r = 8,尾数最高三位不全为0
  • ...
问题:尾数的规格化
  • r = 2
    • 左规:尾数左移1位,阶码减1
    • 右规:尾数右移1位,阶码加1
  • r = 4
    • 左规:尾数左移2位,阶码减1
    • 右规:尾数右移2位,阶码加1
  • ...
结论:基数r越大,可表示的浮点数的范围就越大,但是表示精度越低。

技巧:当求最大最小正负数的时候,可以先写出真值形式的表达方式,然后再转化成相应的码制。
关于机器零
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值