Skip to content

Commit

Permalink
Update ch03-01-precision.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Euler-37 authored Mar 25, 2024
1 parent 09af35d commit 20f0059
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions src/ch03-01-precision.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,38 @@

## 整数

计算机使用二进制来表示数据,一个默认的整数类型占4个字节,一共有32位,每个位有两种状态,所以一共可以表示的数据量为$2^{32}$
计算机使用二进制来表示数据,一个默认的整数类型占4个字节,一共有32位,每个位有两种状态,所以一共可以表示的数据量为\\(2^{32}\\)

因为我们需要同时表示负数、正数和零,所以,整数的表示范围被设计为$[-2^{31},2^{31}-1]$ 一共有$2^{32}$个数。
因为我们需要同时表示负数、正数和零,所以,整数的表示范围被设计为\\([-2^{31},2^{31}-1]\\)一共有\\(2^{32}\\)个数。

如果需要表示的数据超过了这个限度,那么就需要kind值更大的整数类型`integer(8)`来表示

## 浮点数

整数是完全精确的,但是在实际的生活工作中,我们不一定需要这么精确的数,$\pi=3.14$或者是$\pi=3.141592653$对某些计算来说并不重要。但是相对的,数值可以表达的范围对某些行业更为有用,比如天体之间的距离。所以我们可以舍弃一部分的精确度来换取更大的表示范围,这就是浮点数。
整数是完全精确的,但是在实际的生活工作中,我们不一定需要这么精确的数,\\(\pi=3.14\\)或者是\\(\pi=3.141592653\\)对某些计算来说并不重要。但是相对的,数值可以表达的范围对某些行业更为有用,比如天体之间的距离。所以我们可以舍弃一部分的精确度来换取更大的表示范围,这就是浮点数。

### IEEE754
按照IEEE754 浮点数的标准,浮点数由三部分组成:符号位(sign),指针偏移值(exponent)和分数值(fraction)。 一个浮点数是这三部分的乘积$Value=sign*exponent*fraction$

浮点数的默认类型也是占4个字节,32个位,所以能表示的状态最多也是$2^{32}$个,因此,**注定有些数字没有办法精确表示**,IEEE754的处理方法是:
浮点数的默认类型也是占4个字节,32个位,所以能表示的状态最多也是\\(2^{32}\\)个,因此,**注定有些数字没有办法精确表示**,IEEE754的处理方法是:

$$(sign)1+(exponent)8+(fraction)23=32$$

- 用23个位表示一组分数,$fraction=1+\sum_{i=1}^{23}\frac{a[i]}{2^i}$,其中$a[i]$表示这个位是0还是1。
- 用23个位表示一组分数,\\(fraction=1+\sum_{i=1}^{23}\frac{a[i]}{2^i}\\),其中a[i]表示这个位是0还是1。

- 用8个位表示指数,$exponent=2^{M-127}$,M的取值范围是[0,255]
- 用8个位表示指数,\\(exponent=2^{M-127}\\),M的取值范围是[0,255]

浮点数就是利用exponent把给定的fraction按照比例放大或者缩小。即能用这个公式表示出来的都是精确的数,其余的数都是近似等于这些数中的一个。

所以,浮点数的精度是由fraction来决定的,在十进制表示下,精度为$log_{10}2^{23}=6.923$,所以通常说单精度浮点数的有效数字是6.9
所以,浮点数的精度是由fraction来决定的,在十进制表示下,精度为\\(log_{10}2^{23}=6.923\\),所以通常说单精度浮点数的有效数字是6.9

### Infinity

当符号位$M$取最大值255,且分数位全为0时,此时规定这个值为$Infinity$
当符号位$M$取最大值255,且分数位全为0时,此时规定这个值为`Infinity`

### Nan

当符号位$M$取最大值255,且分数位不全为0时,此时规定这些值均为$Nan$
当符号位$M$取最大值255,且分数位不全为0时,此时规定这些值均为`Nan`

## 思考题

Expand Down

0 comments on commit 20f0059

Please sign in to comment.