机器零

计算机中机器零是指:

  1. 如果一个浮点数的尾数全为0,则不论其阶码为何值,计算机在处理时都把这种浮点数当作零看待;

  2. 如果一个浮点数的阶码小于它所表示范围的最小值,则不论其尾数为何值,计算机在处理时都把这种浮点数当作零看待。

计算机保存数字的位有限,所能表示最小的数也有范围,当一个表示方式比它所能表示的数更小时,计算机无法表示,就作为0处理,实际上,这个数也很接近0了.

浮点数定义其实就是0.XXXXX * 2^XXXX

零点多少乘以2的多少次方

其中零点多少就是尾数,2的多少次方就是阶码,不管计算机用几位表示阶码,肯定有个表示的范围,一共有负的最大值,负的最小值,正的最大值,正的最小值4种限制.

当一个表示方式中的阶码是负数,而且这个负数小于计算机所能表示的阶码

如以上2的XXX次方中,XXX是负数 (绝对值很大) ,非常小,在数学上这个值就非常接近于零,在计算机上,因为无法表示比这个值更小了,所以就把这个浮点数作为零处理

补充: 不用管位数,先看阶码

假设一个10进制的数,0.9999*10^-9999999999999999999999999,

10的-99999999999999999999999次方,那么这个数是不是很接近0,

不管前面的0.9999是正还是负

对于2进制也一样,0.1111*2^-111111111111111111111111111111

计算机保存数字的位有限,所能表示最小的数也有范围,当一个表示方式比它所能表示的数更小时,计算机无法表示,就作为0处理,实际上,这个数也很接近0了.