定点数和浮点数

314 阅读3分钟

计算机中表示数字的方式主要有两种,定点表述法和浮点表示法两种,有时候也称定点数和浮点数。数学中,有理数分为整数和小数,计算机中的也必须支持这两种数的表示,无论是定点数的表示方式还是浮点数的表示方式都是可以表示整数和小数的。

定点表示法,顾名思义,小数点的位置是固定的,通过约定计算机中小数点的位置且固定住这种提前约定的位置的方法表示数字。通过引入小数点,数字就被分割成两部分,小数点前和小数点后,小数点前是数字的整数部分,小数点后是数字的小数部分,分别用二进制表示,两部分数组合起来就算完整的数字,然后将其存储在计算机中。用定点表示法表示的数字称为定点数。

定点数有三种情况:

  1. 纯整数:小数点固定在最后一位,可忽略不写
  2. 纯小数:小数点固定在最高位
  3. 整数+小数:小数点指定在某个位置

定点数存在的问题:

  1. 数值的表示范围有限(小数点越靠左,整个数值范围越小)
  2. 数值的精度范围有限(小数点越靠右,数值精度越低)

计算机的存储空间无论多大都是有限的,所以在有限的空间内如何能够存储更大范围更大精度的数就变得重要,因此科学家引入了浮点数,现在的计算机中,一般都是使用浮点数表示小数。 浮点数,是指小数点的位置可以浮动的,不是固定在某个位置的。 浮点数是用科学计数法的方式表示的,它的格式是: V=(1)SMREV=(-1)^S * M * R^E,各个变量的含义:

  1. S,符号位,取值为0或1,0表示正,1表示负,用来决定数字的符号
  2. M,尾数,用小数表示
  3. R,基数,
  4. E,指数,用整数表示,整数分正负 所以,如果我们要在计算机中,用浮点数表示一个数字,按照规则将公式中的4个变量填写即可。 指数位和尾数位的分配位数不同,产生的效果也不同,效果主要指数字范围和数字精度。为了消除这种差异,出现了一个统一的浮点数标准IEEE754浮点数标准。

IEEE754浮点数标准统一了浮点数的表示形式,提供了2种浮点格式: 1、单精度浮点数float:32位,符号位S占1bit,指数E占8bit,尾数M占23bit 2、双精度浮点数float: 64位,符号位S占1bit,指数E占11bit,尾数M占52bit

小结

现在计算机中,定点数通常用来表示整数,使用浮点数表示小数,各个厂商根据IEEE754浮点数标准统一浮点数规则。