csapp第2章-数据表示

2020-02-21  本文已影响0人  dounine

title: csapp2-数据表示
date: 2019-03-27 20:50:48


0. 前言

只记载重难点内容。

1. 进制转换

计算机系统中,以二进制和十六进制最为重要,其转换如下:

image

2. 寻址和字节顺序

3. 补码

计算机的二进制表示都是采用补码的形式。

二进制补码转十进制公式:

3.png

最高有效位 X_w-1符号位,权重为 -2^{w-1}。其它第 i 位权重则为 2^{i}

十进制转二进制补码:

4. C语言中的移位运算

对于有符号数,右移则为算术右移;对于无符号数,则为逻辑右移。

5.png

5. 浮点数

以IEEE浮点数标准为主。

5.1. 二进制浮点数标准形式

6.png 7.png

示例:

如二进制小数:-1011.101

标准化后变为:(-1)^1 \times 0.1011101(或1.011101) \times 2^5(或2^4)

5.2. 浮点数的位级表示

8.png

5.3. 浮点数编码对应的值

9.png

5.3.1. 规格化的值

条件:当exp字段既不全为0,也不全为1时。

5.3.2. 非规格化的值

条件:当exp字段全为0时。

非规格化值的作用:

  1. 提供可以表示数值0的方法。因为在规格化数中,M > 1尾数永远大于1,无法表示0。

  2. 可以表示非常接近0的浮点数。同样因为规格化数要求M > 1,而阶码又最小为 -126(单精度),所以规格化数最小只能表示 1.0 \times 2^{-126}。由于非规格化数没有隐层尾数 M1,则其可以表示得更小,如:0.00...001 \times 2^{-126}

5.3.3. 无穷

条件:当exp字段全为1,同时face字段全为0时。

s=0,正无穷;s=1,负无穷。

5.3.4. NaN(Not a Number)

条件:当exp字段全为1,face字段非零时。

当计算 \sqrt-1 等不合常理的式子时,会返回NaN。

5.4. 浮点数取值示例

假设8位浮点数,其中:exp字段4位,face字段3位,B偏置常数 Bias = 2^{4-1} - 1 = 7

其各种类型的表示和取值为:

10.png
上一篇 下一篇

猜你喜欢

热点阅读