完善:完善《软件设计师知识点速记》

This commit is contained in:
2023-05-08 23:52:35 +08:00
parent 0eedb4a611
commit f42da5c339
7 changed files with 127 additions and 6 deletions

View File

@@ -17,11 +17,19 @@ pre, code, kbd, samp {
} }
.vp-doc h2 { .vp-doc h2 {
margin: 15px 0 16px; margin: 15px 0 0;
padding-top: 10px; padding-top: 10px;
border-top: none; border-top: none;
} }
.vp-doc h3,h4,h5 {
margin: 10px 0 0;
}
.vp-doc h4 {
font-size: 18px;
}
.VPDoc .content-container img { .VPDoc .content-container img {
border-radius: 5px; border-radius: 5px;
} }

View File

@@ -11,6 +11,120 @@ tags:
# 软件设计师知识点速记 # 软件设计师知识点速记
## 计算机组成与体系结构
### 进制转换
#### R 进制 => 十进制
R 进制转十进制使用 **按权展开法** ,其具体操作方式为:将 R 进制数的每一位数值用 $R^{k}$ 形式表示,即幂的底数是 R指数为 kk 与该位和小数点之间的距离有关。当该位位于小数点左边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 转换为二进制。**
**解析:**
![202305062208011](../../../../../public/img/2023/05/06/202305062208011.png)
#### 二进制 => 八进制
3 位二进制数按权展开相加得到 1 位八进制数。
::: tip 笔者说
3 位二进制转成八进制是从右到左开始转换,不足位时补 0。
:::
**示例:二进制数 100101110 转换为八进制。**
**解析:**
![202305062210123](../../../../../public/img/2023/05/06/202305062210123.png)
#### 二进制 <= 八进制
二进制数转换为八进制,是用 3 位二进制数表示 1 位八进制数。反之八进制数转换为二进制数,那就需要用 1 位八进制数来表示 3 位二进制数。
八进制数通过对每位数值进行短除法,得到二进制数,每个八进制数为 3 个二进制数,不足时在最左边补 0。
**示例:八进制数 226 转换为二进制。**
**解析:**
![202305062210222](../../../../../public/img/2023/05/06/202305062210222.png)
#### 二进制 => 十六进制
与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。
::: tip 笔者说
4 位二进制转成十六进制是从右到左开始转换不足位时补0。
:::
**示例:二进制数 100101110 转换为十六进制。**
**解析:**
![202305062210321](../../../../../public/img/2023/05/06/202305062210321.png)
#### 二进制 <= 十六进制
二进制数转换为十六进制,是用 4 位二进制数表示 1 位十六进制数。反之十六进制数转换为二进制数,那就需要用 1 位十六进制数来表示 4 位二进制数。
十六进制数通过对每位数值进行短除法,得到二进制数,每个十六进制数为 4 个二进制数,不足时在最左边补 0。
**示例:十六进制数 12C 转换为二进制。**
**解析:**
![202305062219521](../../../../../public/img/2023/05/06/202305062219521.png)
### 码制的表示
#### 码制运算
| | 数值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 条指令执行时间 - 流水线建立时间:第 1 条指令执行时间
@@ -27,8 +141,7 @@ tags:
::: details 2009上半年某指令流水线由 5 段组成,第 1、3、5 段所需时间为 $\Delta t$,第 2、4 段所需时间分别为 $3\Delta t$、$2\Delta t$,如下图所示,那么连续输入 n 条指令时的吞吐率单位时间内执行的指令个数TP 为______。 ::: 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} \frac{n}{(3+3+2)\Delta t+3(n-1)\Delta t}
$$ $$
@@ -114,7 +227,7 @@ UML 2.0 分为结构图和行为图。
### 创建型设计模式应用场景 ### 创建型设计模式应用场景
| 设计模式名称 | 简要说明 | 速记关键字 | | 设计模式 | 简要说明 | 速记 |
| ---------------------------------- | ------------------------------------------------------------ | -------------- | | ---------------------------------- | ------------------------------------------------------------ | -------------- |
| Factory Method<br />工厂方法模式 | 定义一个创建对象的接口,但由子类决定需要实例化哪一个类。工厂方法使得子类实例化的过程推迟。 | 动态生产对象 | | Factory Method<br />工厂方法模式 | 定义一个创建对象的接口,但由子类决定需要实例化哪一个类。工厂方法使得子类实例化的过程推迟。 | 动态生产对象 |
| Abstract Factory<br />抽象工厂模式 | 提供一个接口,可以创建一系列相关接口或相互依赖的对象,而无需指定它们具体的类。 | 生产成系列对象 | | Abstract Factory<br />抽象工厂模式 | 提供一个接口,可以创建一系列相关接口或相互依赖的对象,而无需指定它们具体的类。 | 生产成系列对象 |
@@ -124,7 +237,7 @@ UML 2.0 分为结构图和行为图。
### 结构型设计模式应用场景 ### 结构型设计模式应用场景
| 设计模式名称 | 简要说明 | 速记关键字 | | 设计模式 | 简要说明 | 速记 |
| ----------------------- | ------------------------------------------------------------ | ------------ | | ----------------------- | ------------------------------------------------------------ | ------------ |
| Adapter<br />适配器模式 | 将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同工作。 | 转换接口 | | Adapter<br />适配器模式 | 将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同工作。 | 转换接口 |
| Bridge<br />桥接模式 | 将类的抽象部分和它的实现部分分离开来,使它们可以独立地变化。 | 继承树拆分 | | Bridge<br />桥接模式 | 将类的抽象部分和它的实现部分分离开来,使它们可以独立地变化。 | 继承树拆分 |
@@ -136,7 +249,7 @@ UML 2.0 分为结构图和行为图。
### 行为型设计模式应用场景 ### 行为型设计模式应用场景
| 设计模式名称 | 简要说明 | 速记关键字 | | 设计模式 | 简要说明 | 速记 |
| ------------------------------------ | ------------------------------------------------------------ | ---------------- | | ------------------------------------ | ------------------------------------------------------------ | ---------------- |
| Chain of Responsibility 职责链模式 | 通过给多个对象处理请求的机会,减少请求的发送者与接收者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理这个请求。 | 传递职责 | | Chain of Responsibility 职责链模式 | 通过给多个对象处理请求的机会,减少请求的发送者与接收者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理这个请求。 | 传递职责 |
| Command<br />命令模式 | 将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。 | 日志记录,可撤销 | | Command<br />命令模式 | 将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。 | 日志记录,可撤销 |

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB