0
0
0
【中软设】2.1 计算机组成与体系结构-数值转换

以下内容基本以选择题进行考察。



# 1.0 进制转换
一般不作为单独的考题进行考察。

# 考点:进制转换
| 进制 | 数码 | 基数 | 位权 |
| ---- | ---- | ---- | ---- |
| 十进制(D) | 0,1,2,3,4,5,6,7,8,9 | 10 | $10^k$ |
| 二进制(B) | 0,1 | 2 | $2^k$ |
| 八进制(O) | 0,1,2,3,4,5,6,7 | 8 | $8^k$ |
| 十六进制(H) | 0~9,A,B,C,D,E,F | 16 | $16^k$ |
十进制:逢十进位,没有单独的字符表示十。
提示1:小数点左边的位权阶数k从0开始,右边的位权阶数k从-1开始。比如十进制数 123.123D。
提示2:只需记忆A(10)和F(15)。A=10、B=11、C=12、D=13、E=14、F=15
## 1.1 位权说明
位权:数字所在位置的权重系数。
以十进制 `123.123D` 拆分:
数字: 1 2 3 . 1 2 3
k值: 2 1 0 -1 -2 -3
展开计算:
$1\times10^2 + 2\times10^1 + 3\times10^0 + 1\times10^{-1} + 2\times10^{-2} + 3\times10^{-3} = 123.123$
## 1.2 R进制转十进制(按权展开法/加权法)
### 核心规则
公式:**每一位数字 × 该位位权,全部相加**
1. 整数部分(小数点左侧):从右往左,k从0依次+1
2. 小数部分(小数点右侧):从左往右,k从-1依次-1
### 示例1:二进制转十进制
1. `111(B)`
$1\times2^2 + 1\times2^1 + 1\times2^0 = 4+2+1 = 7(D)$
2. `10100.01(B)`
$1\times2^4 + 1\times2^2 + 1\times2^{-2} = 16+4+0.25 = 20.25(D)$
### 示例2:八进制转十进制(含小数)
`604.2(O)`
整数部分:$6\times8^2 + 0\times8^1 + 4\times8^0 = 384 + 0 + 4 = 388$
小数部分:$2\times8^{-1} = 2/8 = 0.25$
合计:$388.25(D)$
### 示例3:十六进制转十进制(含小数)
`2A.8(H)`
整数部分:$2\times16^1 + 10\times16^0 = 32+10=42$
小数部分:$8\times16^{-1} = 8/16 = 0.5$
合计:$42.5(D)$
## 1.3 十进制转R进制(短除法/除基取余法)
### 核心口诀
整数部分:反复除以目标进制基数R,直到商为0,**从下往上倒序读取余数**。
### 补充:小数部分规则
小数部分:反复乘以目标进制基数R,每次取整数部分作为结果,剩余小数继续乘,**从上往下顺序读取整数**。
### 操作步骤
#### 1)整数部分
1. 用目标进制基数当作除数,去除十进制被除数
2. 记录每一次计算得到的余数
3. 将上一步得到的商继续除以基数,循环执行
4. 当商等于0时停止,余数从最后一个往第一个拼接,即为结果



#### 2)小数部分
1. 纯小数乘以R,取出小数点前整数作为第一位小数
2. 剩下的小数继续乘以R,再取整数
3. 达到需要精度停止,顺序拼接取出的整数
### 完整示例:94.625(D) 转为二进制
#### ① 整数部分94
> 2 | 94 余 0
> 2 | 47 余 1
> 2 | 23 余 1
> 2 | 11 余 1
> 2 | 5 余 1
> 2 | 2 余 0
> 2 | 1 余 1
> 0
倒序余数:`1011110`
#### ② 小数部分0.523(乘2取整法,截取6位近似值)
0.523 × 2 = 1.046 → 取1
0.046 × 2 = 0.092 → 取0
0.092 × 2 = 0.184 → 取0
0.184 × 2 = 0.368 → 取0
0.368 × 2 = 0.736 → 取0
0.736 × 2 = 1.472 → 取1
顺序读取小数位:`.100001`
#### 最终合并结果
94.523(D) ≈ 1011110.100001(B)
规范8位整数写法:01011110.100001(B)
## 1.4 十进制转二进制特殊方法——凑位权法
这个方法只适合整数。

### 1.4.1 二进制整数+小数完整权值基准表
| $2^7$ | $2^6$ | $2^5$ | $2^4$ | $2^3$ | $2^2$ | $2^1$ | $2^0$ |
|----|----|----|----|----|----|----|----|
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
### 1.4.2 计算规则
1. 整数部分:从最高位128开始依次比对;剩余数字≥当前权值填`1`并减去权值,否则填`0`;
2. 小数点后小数部分:从$2^{-1}$(0.5)开始往右依次比对,剩余小数≥当前小数权值填`1`并减去权值,否则填`0`;
3. 整数按需补齐8位,小数按需保留对应位数。
### 1.4.3 案例演示
1. 十进制7
拆解:$7 = 4 + 2 + 1$
对应二进制错位相加:
```
100
10
1
------
111
```
补齐8位:`00000111`
2. 十进制94
拆解:94 = 64 + 16 + 8 + 4 + 2
分别对应:
```
64 → 1000000
16 → 10000
8 → 1000
4 → 100
2 → 10
-------------
01011110
```
错位叠加:
补齐8位:`01011110`
3.IP地址192D转换8位二进制
128+64 = 192 → 最终结果:`11000000`
## 1.5 二进制转八进制、十六进制(分组法/逆分组法)

### 1.5.1 二进制转八进制(三分法,含整数+小数)
#### 规则
1. 整数部分:小数点**向左**每3位一组,左侧位数不足在最左边补0;
2. 小数部分:小数点**向右**每3位一组,右侧位数不足在最右边补0;
3. 每一组3位二进制独立换算成1位八进制数字。
#### 示例
二进制:`10001110.1011(B)`
整数向左分组补零:`010 001 110` → 2 1 6
小数向右分组补零:`101 100` → 5 4
最终结果:`216.54 O`
### 1.5.2 二进制转十六进制(四分法,含整数+小数)
#### 规则
1. 整数部分:小数点**向左**每4位一组,左侧不足补0;
2. 小数部分:小数点**向右**每4位一组,右侧不足补0;
3. 每组4位二进制转为1位十六进制(10=A,11=B,12=C,13=D,14=E,15=F)。
#### 示例
二进制:`10001110.11(B)`
整数分组:`1000 1110` → 8 E
小数分组补零:`1100` → C
最终结果:`8E.C H`
### 1.5.3 逆分组法:八进制/十六进制转回二进制(含小数)
#### 规则
1. 八进制逆推:1位八进制固定拆解为3位二进制,小数点位置保持不变,小数位同样1位拆3位;
2. 十六进制逆推:1位十六进制固定拆解为4位二进制,小数点位置保持不变,小数位同样1位拆4位。
#### 示例1 思考题:31B5H 转二进制
3 → 0011
1 → 0001
B → 1011
5 → 0101
直接拼接完整结果:`0011000110110101`
#### 示例2 带小数逆向还原:216.54O 转回二进制
2→010,1→001,6→110 . 5→101,4→100
拼接结果:`10001110.1011B`
