浮点数的运算
最后更新于:2022-04-02 04:04:59
[TOC]
## 浮点数的运算
例子:
`$ x=0.110\times 2^{01} $`
`$ y=(-0.1010)\times 2^{11} $`
### 1.对阶
```
[阶码符号位][阶码数值位][尾数符号位][尾数数值位]
00 0001 00 1101
00 0011 11 1010
x向y对阶,x尾数右移两位
x=0.001101x2^11
[阶码符号位][阶码数值位][尾数符号位][尾数数值位]
00 0011 00 001101(01)
00 0011 11 1010
```
符号位使用双符号,可以进行溢出判断
### 2.尾数求和
- 使用补码进行运算
```
x[原]=00.0011 [补]=00.0011
y[原]=11.1010 [补]=1.0110
S=(x+y)[补] = 11.1001
[阶码符号位][阶码数值位][尾数符号位][尾数数值位]
00 0011 11 1001
```
### 3.尾数规格化
```
S[补]=00.1xxxxxx (S>0)
S[补]=11.0xxxxxx (S<0)
```
```
S=(x+y)[补]=111001
S=(x+y)补]=11.(1)0010(左移)
(1)设置,最末加-
[阶码符号位][阶码数值位][尾数符号位][尾数数值位]
00 0010 11 0010
S=(x+y)[补]=11.0010=(x+y)[原]=-0.1110=0.1110×2^10
```
1. 一般情况下都是左移
1. 双符号位不—致下需要右移(定点运算的溢出情况)
2. 右移的话则需要进行舍入操作
3. 舍入为"0佘1入"法
';