0%

计算机中的浮点数

计算机中的浮点数

二进制表示小数

说到浮点数,就要先说一下小数,计算机都是使用二进制来进行表示的,所以十进制中的小数部分就是2进制中的负指数次幂

如二进制中1.011就表示为十进制的1*2^0+0*2^(-1)+1*2^(-2)+1*2^(-3),也就是1.375,其实这也是为什么在进行小数部分计算时不准确的原因

浮点数

很多编程语言中都提供了两种表示小数的数据类型,分别是双精度浮点数和单精度浮点数,双精度浮点数类型用64位,单精度浮点数类型用32位来表示

如何表示

浮点数是指符号、尾数、基数和指数这四部分来进行表示,计算机使用的是二进制,所以基数是2,不需要考虑基数,只需要用符号、尾数、指数三部分就可以表示浮点数

1
符号 尾数 * 基数 ^ (指数)
  • 计算方式涉及到了EXCESS系统,暂时不理解

双精度

1
<-- 符号部分1位 --> <-- 指数部分11位 --> <-- 尾数部分52位 -->

单精度

1
<-- 符号部分1位 --> <-- 指数部分8位 --> <-- 尾数部分23位 -->