定点小数在计算机中的应用,定点数与浮点数在计算机中的表示

计算机中存储有定点数与浮点数,今天主要讲定点数与浮点数在计算机存储的形式。

定点数

定点数简单说就是小数点固定的数。对于小数,小数点固定在数值最高位左侧;对于整数,小数点固定在最低位右侧。定点数不单有小数,整数之分,还有正数,负数之分。那么正数、负数在计算机中如何表示呢?

在数中建立符号位即可。

现在对于定点数在计算中存储的两个问题已经解决,剩下来的就是存储的形式。主要是四种形式,也是老生常谈了。

他们分别为原码、反码、补码、移码。

原码

符号位+数值位:数为正,数值位不变,符号位为0;数为负,数值位不变,符号位为1.

原码中+0、-0的原码不同,因而8位中原码范围位-127~127.

反码

符号位+数值位:数为正,数值位不变,符号位为0.数为负,数值位取反,即原来为0置为1,原来为1置为0,符号位为1.

反码中+0、-0的反码不同,因而8位中反码范围为-127~127.

补码

符号位+数值位:数为正,数值位不变,符号位为0。数为负,数值位取反成反码,再在末位加1,符号位为1.

补码中0的补码是唯一的,在8位中为00000000,因为补码中10000000为-128.所以补码范围为-128~127.

移码

其实是二进制加一个偏移量,简单记得话就是补码除了符号位变换,即1变0,0变1,其他不变。

浮点数

简单说来就是小数点不固定的数,形式与科学记数法相似。形式为尾数M*2的n次方。

那这样看来浮点数的存储主要是解决尾数与阶码(即幂次方)。尾数里主要解决符号位、数据位,而这些在定点数里都提到了。阶码里主要是阶符、数据。浮点数在计算机的存储是阶码、阶符、尾数、尾码的搭配。

浮点数的溢出通常是以阶码的溢出为溢出的,分为上溢出、下溢出。

上溢出分为两种情况,一种是正数,即尾码达到最大,阶码达到最大之外;一种是负数,即尾码数达到最小,阶码达到最大之外。

下溢出就一种情况,阶码值小于所能表示的阶码本身所能表示的最小值时,值的结果一般小于0.

浮点数的规格化

没有规矩,不成方圆。浮点数的存储形式在没有统一的标准时,就像咱们山南海北的方言一样,也许除了本地人,没有晓得说的是啥哟。而普通话大家都听得明白,这就好像浮点数的存储形式。

规格化的一个硬性要求是,尾数绝对值大于等于1/2,小于1;简单说就是尾数不为0时,尾数的最高有效位为1。

规格化可以用原码、补码表示。原码表示时有一个规律:最高有效位数值恒为1;补码表示时的规律:符号位与最高位的值相反,即符号位为1则最高位为0,符号位为0则最高位为1.那么会发现-0.1在补码规格化时为1100,不符合上述规律,因而-0.1不能使用补码规格化。

IEEE754标准

该标准是浮点数在计算机表示的一个标准,以原码、移码进行表示。存放顺序为尾符、阶码(包含阶符)、尾数。其基本形式如下表:

fd3de7dfa6ac

IEEE754存放要求

值得注意的是阶码使用移码,其他使用原码。移码自带隐含阶符的能力。同时因为规格化的最高位有效位总为1,因而尾数中的最高位没有写出来,即1.1101在计算机中为1101,最高位因为我们知道是1,因而我们可以不在其中存放,同时因为少了一位,我们可以用23位存放相当于24位的数,更精准了。

怎么读取754的内容呢?公式为:(1.M)*(2的阶码次方);M是存在计算机中的尾数。

最后再次总结一下754标准,就是将一个二进制数转为1.XXX,上面不是说尾数绝对值大于等于1/2小于1么,怎么变成这样了。这是754标准首先,其次,精准。然后将0.XXX存放在计算机中尾数位,将阶码以移码形式存放进去即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值