完善:完善《软件设计师知识点速记》
This commit is contained in:
@@ -17,11 +17,19 @@ pre, code, kbd, samp {
|
||||
}
|
||||
|
||||
.vp-doc h2 {
|
||||
margin: 15px 0 16px;
|
||||
margin: 15px 0 0;
|
||||
padding-top: 10px;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.vp-doc h3,h4,h5 {
|
||||
margin: 10px 0 0;
|
||||
}
|
||||
|
||||
.vp-doc h4 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.VPDoc .content-container img {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
@@ -11,6 +11,120 @@ tags:
|
||||
|
||||
# 软件设计师知识点速记
|
||||
|
||||
## 计算机组成与体系结构
|
||||
|
||||
### 进制转换
|
||||
|
||||
#### R 进制 => 十进制
|
||||
|
||||
R 进制转十进制使用 **按权展开法** ,其具体操作方式为:将 R 进制数的每一位数值用 $R^{k}$ 形式表示,即幂的底数是 R,指数为 k,k 与该位和小数点之间的距离有关。当该位位于小数点左边,k 值是该位和小数点之间数码的个数,而当该位位于小数点右边,k 值是负值,其绝对值是该位和小数点之间数码的个数加 1。
|
||||
|
||||
**示例:二进制数 10100.01 转换为十进制。**
|
||||
|
||||
**解析:** 示例中的二进制数存在小数点位,可先计算小数点位一侧的数值。我们从左侧开始,,从小数点位左侧第 1 位数值开始计数:0、1、2、3、4,一共 5 位数值,则第 5 位数值 1 可以展开为 $1*2^{4}$ ,第 4 位数值 0 可以展开为 $0*2^{3}$(由于 0 和任何数相乘结果都为 0,以后日常转换时,可以直接跳过数值为 0 的计算,但注意只是跳过计算不是跳过计数),依次类推...。
|
||||
|
||||
左侧累加完后,再继续计算小数点位右侧,从小数点位右侧第 1 位数值开始计数,-1、-2,一共 2 位数值。不过按照我们日常的顺序习惯,可以直接从第 1 位数值展开计算,0 展开计算为 $0*2^{-1}$,第 2 位数值 1 展开计算为 $1*2^{-2}$,将结果最终累加求和即可得到对应二进制的十进制表示。
|
||||
|
||||
$$
|
||||
10100.01=1*2^{4}+0*2^{3}+1*2^{2}+0*2^{1}+0*2^{0}+0*2^{-1}+1*2^{-2}
|
||||
$$
|
||||
|
||||
::: tip 笔者说
|
||||
**权:** 即 R。
|
||||
**按权展开:** 即将 R 进制的每一权位数值(个位、十位、百位...)分别展开计算,最后求和。
|
||||
:::
|
||||
|
||||
::: details 例题:七进制数 604.01 转换为十进制。
|
||||
**解析:** 根据按权展开法,可得到下列表达式:
|
||||
$$
|
||||
604.01=6*7^{2}+0*7^{1}+4*7^{0}+0*7^{-1}+0*7^{-2}
|
||||
$$
|
||||
:::
|
||||
|
||||
#### R 进制 <= 十进制
|
||||
|
||||
十进制转 R 进制使用 **短除法** ,简单来说就是将十进制数除 R 取余,余数为权位上的数,得到的商值继续除R,依此步骤继续向下运算直到商为 0 为止。然后从最后一个余数读到第一个即为我们转换的 R 进制。
|
||||
|
||||
**示例:十进制数 150 转换为二进制。**
|
||||
|
||||
**解析:**
|
||||
|
||||

|
||||
|
||||
#### 二进制 => 八进制
|
||||
|
||||
3 位二进制数按权展开相加得到 1 位八进制数。
|
||||
|
||||
::: tip 笔者说
|
||||
3 位二进制转成八进制是从右到左开始转换,不足位时补 0。
|
||||
:::
|
||||
|
||||
**示例:二进制数 100101110 转换为八进制。**
|
||||
|
||||
**解析:**
|
||||
|
||||

|
||||
|
||||
#### 二进制 <= 八进制
|
||||
|
||||
二进制数转换为八进制,是用 3 位二进制数表示 1 位八进制数。反之八进制数转换为二进制数,那就需要用 1 位八进制数来表示 3 位二进制数。
|
||||
|
||||
八进制数通过对每位数值进行短除法,得到二进制数,每个八进制数为 3 个二进制数,不足时在最左边补 0。
|
||||
|
||||
**示例:八进制数 226 转换为二进制。**
|
||||
|
||||
**解析:**
|
||||
|
||||

|
||||
|
||||
#### 二进制 => 十六进制
|
||||
|
||||
与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。
|
||||
|
||||
::: tip 笔者说
|
||||
4 位二进制转成十六进制是从右到左开始转换,不足位时补0。
|
||||
:::
|
||||
|
||||
**示例:二进制数 100101110 转换为十六进制。**
|
||||
|
||||
**解析:**
|
||||
|
||||

|
||||
|
||||
#### 二进制 <= 十六进制
|
||||
|
||||
二进制数转换为十六进制,是用 4 位二进制数表示 1 位十六进制数。反之十六进制数转换为二进制数,那就需要用 1 位十六进制数来表示 4 位二进制数。
|
||||
|
||||
十六进制数通过对每位数值进行短除法,得到二进制数,每个十六进制数为 4 个二进制数,不足时在最左边补 0。
|
||||
|
||||
**示例:十六进制数 12C 转换为二进制。**
|
||||
|
||||
**解析:**
|
||||
|
||||

|
||||
|
||||
### 码制的表示
|
||||
|
||||
#### 码制运算
|
||||
|
||||
| | 数值1 | 数值-1 |
|
||||
| ---- | --------- | --------- |
|
||||
| 原码 | 0000 0001 | 1000 0001 |
|
||||
| 反码 | 0000 0001 | 1111 1110 |
|
||||
| 补码 | 0000 0001 | 1111 1111 |
|
||||
| 移码 | 1000 0001 | 0111 1111 |
|
||||
|
||||
二进制数值,最高位(最左侧的数值)是符号位,0 表示正数,1 表示负数。
|
||||
|
||||
- 原码:除符号位,其余低位表示数值的绝对值。
|
||||
- 反码:正数的反码与原码相同,负数的反码是其绝对值按位取反。
|
||||
- 补码:正数的补码与原码、反码相同,负数的补码是其反码末尾加 1。
|
||||
- 移码:补码的符号位按位取反。
|
||||
|
||||
::: tip 笔者说
|
||||
**取反:** 原来为 0 则变为 1,原来为 1 则变为 0。(真假变换)
|
||||
:::
|
||||
|
||||
## 流水线技术
|
||||
|
||||
- 流水线建立时间:第 1 条指令执行时间
|
||||
@@ -27,8 +141,7 @@ tags:
|
||||
|
||||
::: details 2009上半年:某指令流水线由 5 段组成,第 1、3、5 段所需时间为 $\Delta t$,第 2、4 段所需时间分别为 $3\Delta t$、$2\Delta t$,如下图所示,那么连续输入 n 条指令时的吞吐率(单位时间内执行的指令个数)TP 为______。
|
||||
|
||||
连续输入 n 条指令时,第 1 条指令需要的时间为 $(1+3+1+2+1)\Delta t$,之后,每隔 $3\Delta t$ 便完成 1 条指令,即流水线一旦建立好,其吞吐率为最长子过程所需时间的倒数。综合 n 条指令的时间为 $(1+3+1+2+1)\Delta t+(n-1)\times 3\Delta t$,因此吞吐率为:
|
||||
|
||||
**答:** 连续输入 n 条指令时,第 1 条指令需要的时间为 $(1+3+1+2+1)\Delta t$,之后,每隔 $3\Delta t$ 便完成 1 条指令,即流水线一旦建立好,其吞吐率为最长子过程所需时间的倒数。综合 n 条指令的时间为 $(1+3+1+2+1)\Delta t+(n-1)\times 3\Delta t$,因此吞吐率为:
|
||||
$$
|
||||
\frac{n}{(3+3+2)\Delta t+3(n-1)\Delta t}
|
||||
$$
|
||||
@@ -114,7 +227,7 @@ UML 2.0 分为结构图和行为图。
|
||||
|
||||
### 创建型设计模式应用场景
|
||||
|
||||
| 设计模式名称 | 简要说明 | 速记关键字 |
|
||||
| 设计模式 | 简要说明 | 速记 |
|
||||
| ---------------------------------- | ------------------------------------------------------------ | -------------- |
|
||||
| Factory Method<br />工厂方法模式 | 定义一个创建对象的接口,但由子类决定需要实例化哪一个类。工厂方法使得子类实例化的过程推迟。 | 动态生产对象 |
|
||||
| Abstract Factory<br />抽象工厂模式 | 提供一个接口,可以创建一系列相关接口或相互依赖的对象,而无需指定它们具体的类。 | 生产成系列对象 |
|
||||
@@ -124,7 +237,7 @@ UML 2.0 分为结构图和行为图。
|
||||
|
||||
### 结构型设计模式应用场景
|
||||
|
||||
| 设计模式名称 | 简要说明 | 速记关键字 |
|
||||
| 设计模式 | 简要说明 | 速记 |
|
||||
| ----------------------- | ------------------------------------------------------------ | ------------ |
|
||||
| Adapter<br />适配器模式 | 将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同工作。 | 转换接口 |
|
||||
| Bridge<br />桥接模式 | 将类的抽象部分和它的实现部分分离开来,使它们可以独立地变化。 | 继承树拆分 |
|
||||
@@ -136,7 +249,7 @@ UML 2.0 分为结构图和行为图。
|
||||
|
||||
### 行为型设计模式应用场景
|
||||
|
||||
| 设计模式名称 | 简要说明 | 速记关键字 |
|
||||
| 设计模式 | 简要说明 | 速记 |
|
||||
| ------------------------------------ | ------------------------------------------------------------ | ---------------- |
|
||||
| Chain of Responsibility 职责链模式 | 通过给多个对象处理请求的机会,减少请求的发送者与接收者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理这个请求。 | 传递职责 |
|
||||
| Command<br />命令模式 | 将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。 | 日志记录,可撤销 |
|
||||
|
BIN
docs/public/img/2023/05/06/202305062208011.png
Normal file
BIN
docs/public/img/2023/05/06/202305062208011.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 112 KiB |
BIN
docs/public/img/2023/05/06/202305062210123.png
Normal file
BIN
docs/public/img/2023/05/06/202305062210123.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 79 KiB |
BIN
docs/public/img/2023/05/06/202305062210222.png
Normal file
BIN
docs/public/img/2023/05/06/202305062210222.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 92 KiB |
BIN
docs/public/img/2023/05/06/202305062210321.png
Normal file
BIN
docs/public/img/2023/05/06/202305062210321.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 144 KiB |
BIN
docs/public/img/2023/05/06/202305062219521.png
Normal file
BIN
docs/public/img/2023/05/06/202305062219521.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 118 KiB |
Reference in New Issue
Block a user