-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy path1、数的表示.md
219 lines (116 loc) · 6.59 KB
/
1、数的表示.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
# 无符号数和有符号数
**无符号数**
* 寄存器的位数,反映无符号数的表示范围
* 8 位:0 ~ 255
* 16 位: 0 ~ 65535
**有符号数**
* 机器数与真值
<img src="https://img-blog.csdnimg.cn/20201219125849281.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" width="40%" height="50%" />
* 原码表示法
* 整数
<img src="https://img-blog.csdnimg.cn/20201219125913348.png" width="40%" height="50%" />
* 小数
<img src="https://img-blog.csdnimg.cn/20201219125933854.png" width="40%" height="50%" />
* 特点: 简单、直观
* 问题
<img src="https://img-blog.csdnimg.cn/2020121912595374.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" width="50%" height="50%" />
* 补码表示法
* 思想
* 一个负数加上 “模” 即得该负数的补数
* 一个正数和一个负数互为补数时,它们绝对值之和即为 模数
* 整数
<img src="https://img-blog.csdnimg.cn/20201219130015848.png" width="50%" height="50%" />
* 小数
<img src="https://img-blog.csdnimg.cn/20201219130035461.png" width="50%" height="50%" />
* 求补码的快捷方式
* 当真值为 负 时, 补码可用原码除符号位外,每位取反,末位加 1
* 反码表示法
* 整数
<img src="https://img-blog.csdnimg.cn/20201219130111602.png" width="50%" height="50%" />
* 小数
<img src="https://img-blog.csdnimg.cn/2020121913013726.png" width="50%" height="50%" />
* 三种机器数的小结
* 最高位 为 符号位 ,书写上用“, ”(整数),或“. ”(小数)将数值部分和符号位隔开
* 对于 正数 , 原码 = 补码 = 反码
* 对于 负数 , 符号位为 1,其数值部分
原码除符号位外,每位取反末位加 1 -> 补码
原码除符号位外,每位取反 -> 反码
<img src="https://img-blog.csdnimg.cn/20201219130158720.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_7" width="50%" height="50%" />
* 移码表示法
* 特点
* 补码表示很难直接判断其真值大小
* [+0] 移= [ -0] 移
* 最小真值的移码为全 0
* 用移码表示浮点数的阶码,能方便地判断浮点数的阶码大小
* 定义(只有整数)
<img src="https://img-blog.csdnimg.cn/20201219130222710.png" width="40%" height="50%" />
* 数轴上表示
<img src="https://img-blog.csdnimg.cn/20201219130246378.png" width="40%" height="50%" />
* 对照表
<img src="https://img-blog.csdnimg.cn/20201219130310569.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" width="50%" height="50%" />
# 定点表示和浮点表示
**定点表示**
* 即只有符号位,然后剩下的就全相当于浮点表示的尾数
* 缺点:如果要表示一个极大的数或者极小的数,会产生太多的浪费,因为会有许多重复的 0 或者 1
* 和原码、反码、补码、移码的关系是,可以用这四种码来表示阶码或者位数
**浮点表示**
* 表示形式
<img src="https://img-blog.csdnimg.cn/20201219130347701.png" width="50%" height="50%" />
* $S_f$:代表浮点数的符号
* n:其位数反映浮点数的精度
* m:其位数反映浮点数的表示范围
* $j_f$ 和 m:共同表示小数点的实际位置
* 表示范围
* 上溢 阶码 > 最大阶码
* 下溢 阶码 < 最小阶码 ,按 机器零 处理
<img src="https://img-blog.csdnimg.cn/20201219130414759.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" width="50%" height="50%" />
**浮点数规格化**
* 形式
* r = 2 尾数最高位为 1
* r = 4 尾数最高 2 位不全为 0
* r = 8 尾数最高 3 位不全为 0
* 基数不同,浮点数的,规格化形式不同
* 浮点数的规格化
* r = 2
左规 尾数左移 1 位,阶码减 1
右规 尾数右移 1 位,阶码加 1
* r = 4
左规 尾数左移 2 位,阶码减 1
右规 尾数右移 2 位,阶码加 1
* r = 8
左规 尾数左移 3 位,阶码减 1
右规 尾数右移 3 位,阶码加 1
* 总结
* 基数 r 越大,可表示的浮点数的范围越大
* 基数 r 越大,浮点数的精度降低
**规格化数的判断**
* 定义
<img src="https://img-blog.csdnimg.cn/20201219130440735.png" width="30%" height="50%" />
* 形式
<img src="https://img-blog.csdnimg.cn/20201219130502616.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" width="50%" height="50%" />
* 规则
* 原码 不论正数、负数,第一数位为1
* 补码 符号位和第 一数位不同
* 特例
* 1/2
<img src="https://img-blog.csdnimg.cn/20201219130524387.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" width="30%" height="50%" />
* -1
<img src="https://img-blog.csdnimg.cn/20201219130552250.png" width="30%" height="50%" />
* 溢出
* 范围指的真值的范围
* 原码和真值正相关
* 反码和补码与真值负相关(即反码和补码越小,对应的真值越大)
* 示例
* 设机器数为补码,尾数为规格化形式
* 并假设阶符取 2 位,阶码的数值部分取 7 位,数符取2 位,尾数取 n 位,则该补码 在数轴上的表示为
<img src="https://img-blog.csdnimg.cn/202012191306232.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" width="50%" height="50%" />
**机器零**
* 当浮点数 尾数为 0 时,不论其阶码为何值按机器零处理
* 当浮点数 阶码等于或小于它所表示的最小数 时,不论尾数为何值,按机器零处理
**IEEE 754 标准**
* 形式
<img src="https://img-blog.csdnimg.cn/20201219130643940.png" width="50%" height="50%" />
* 尾数为规格化表示
* 非 “0 ” 的有效位最高位为 “1 ”(隐含)
* 位数
<img src="https://img-blog.csdnimg.cn/20201219130716963.png" width="50%" height="50%" />