前言,本文章所有内容均摘录自《软件设计师教程(第5版)》
第1章 计算机系统知识
1.1机器字长为n时各种码制表示的带符号数的范围
| 码制 | 定点整数 | 定点小数 |
|---|---|---|
| 原码 | −(2n−1−1)∼+(2n−1−1)-(2^{n-1}-1)\sim +(2^{n-1}-1)−(2n−1−1)∼+(2n−1−1) | −(1−2n−1)∼+(1−2−(n−1))-(1-2^{n-1})\sim+(1-2^{-(n-1)})−(1−2n−1)∼+(1−2−(n−1)) |
| 反码 | −(2n−1−1)∼+(2n−1−1)-(2^{n-1}-1)\sim +(2^{n-1}-1)−(2n−1−1)∼+(2n−1−1) | −(1−2n−1)∼+(1−2−(n−1))-(1-2^{n-1})\sim+(1-2^{-(n-1)})−(1−2n−1)∼+(1−2−(n−1)) |
| 补码 | −(2n−1)∼+(2n−1−1)-(2^{n-1})\sim +(2^{n-1}-1)−(2n−1)∼+(2n−1−1) | −1∼+(1−2−(n−1))-1\sim+(1-2^{-(n-1)})−1∼+(1−2−(n−1)) |
| 反码 | −(2n−1−1)∼+(2n−1−1)-(2^{n-1}-1)\sim +(2^{n-1}-1)−(2n−1−1)∼+(2n−1−1) | −1∼+(1−2−(n−1))-1\sim+(1-2^{-(n-1)})−1∼+(1−2−(n−1)) |
1.2 工业标准IEEE 754
浮点数的表示形式:
(−1)S2E(b0b1b2b3...bp−1)(-1)^S2^E(b_0b_1b_2b_3...b_{p-1})(−1)S2E(b0b1b2b3...bp−1)
- (−1)S(-1)^S(−1)S为该浮点数的数符,当S为0时表示正数,S为1时表示负数
- E为指数(阶码),用移码表示
- (b0b1b2b3...bp−1)(b_0b_1b_2b_3...b_{p-1})(b0b1b2b3...bp−1)为尾数,其长度为P位,用原码表示
3种形式的IEEE 754浮点数格式
| 参数 | 单精度浮点数 | 双精度浮点数 | 扩充精度浮点数 |
|---|---|---|---|
| 浮点数字长 | 32 | 64 | 80 |
| 尾数长度P | 23 | 52 | 64 |
| 符号位S | 1 | 1 | 1 |
| 指数长度E | 8 | 11 | 15 |
| 最大指数 | +127 | +1023 | +16383 |
| 最小指数 | -126 | -1022 | -16382 |
| 指数偏移量 | +127 | +1023 | +16383 |
| 可表示的实数范围 | 10−38∼103810^{-38}\sim 10^{38}10−38∼1038 | 10−308∼1030810^{-308}\sim 10^{308}10−308∼10308 | 10−4932∼10493210^{-4932}\sim 10^{4932}10−4932∼104932 |
1.3 海明码
设数据位是n位,校验位是k位,则n和k必须满足以下关系:
2k−1>=n+k2^k-1>=n+k2k−1>=n+k
1.4 Cache性能分析
设HcH_cHc为cache的命中率,tct_ctc为Cache的存取时间,tmt_mtm为主存的访问时间,则Cache存储器的等效加权平均访问时间tat_ata为:
ta=Hctc+(1−Hc)tm=tc+(1−Hc)(tm−tc)t_a=H_ct_c + (1-H_c)t_m=t_c+(1-H_c)(t_m-t_c)ta=Hctc+(1−Hc)tm=tc+(1−Hc)(tm−tc)
1.5 磁盘容量计算公式
- 非格式化容量=
面数*(磁道数/面)*内圆周长*最大位密度,磁盘所能存储的总位数 - 格式化容量=
面数*(磁道数/面)*(扇区数/道)*(字节数/扇区),各扇区中数据区容量的总和
1.6 计算机的使用效率
以系统在执行任务的任意时刻能正常工作的概率A来表示,即
A=MTBFMTBF+MTRFA=\frac{MTBF}{MTBF+MTRF}A=MTBF+MTRFMTBF
- MTBF:平均无故障时间,两次故障之间系统能正常工作的时间的平均值
- MTRF:计算机的维修效率,指从故障发生到机器修复平均所需要的时间
1.7 计算机可靠性模型
- 串联系统。设系统中各个子系统的可靠性分别用R1R_1R1,R2R_2R2…RNR_NRN来表示,则系统的可靠性R可由下式求得:
R=R1R2...RNR=R_1R_2...R_NR=R1R2...RN - 并联系统。设系统中各个子系统的可靠性分别用R1R_1R1,R2R_2R2…RNR_NRN来表示,则系统的可靠性R可由下式求得:
R=1−(1−R1)(1−R2)...(1−RN)R=1-(1-R_1)(1-R_2)...(1-R_N)R=1−(1−R1)(1−R2)...(1−RN)
第3章 数据结构
3.1 二叉树的性质
- 二叉树第i层(i>=1)上最多有2i−12^{i-1}2i−1个结点
- 高度为k的二叉树最多有2k−12^k-12k−1个结点(k>=1)
- 对于任何一棵二叉树,若其终端结点数为n0n_0n0,度为2的结点数为n2n_2n2,则n0=n2+1n_0=n_2+1n0=n2+1
- 具有n个结点的完全二叉树的深度为[log2n+1log_2n+1log2n+1]
3.2 哈希解决冲突方法
开放定址法:
Hi=(H(key)+di)%mi=1,2,...,k(k≤m−1)H_i=(H(key)+ d_i) \% m \quad i=1,2,...,k(k \leq m-1)Hi=(H(key)+di)%mi=1,2,...,k(k≤m−1)
- H(key): 哈希函数
- m: 哈希表表长
- did_idi: 增量序列
3.3 各种排序方法的性能比较
| 排序方法 | 时间复杂度 | 辅助空间 | 稳定性 |
|---|---|---|---|
| 直接插入 | O(n2)O(n^2)O(n2) | O(1) | 稳定 |
| 简单选择 | O(n2)O(n^2)O(n2) | O(1) | 不稳定 |
| 冒泡排序 | O(n2)O(n^2)O(n2) | O(1) | 稳定 |
| 希尔排序 | O(n1.3)O(n^{1.3})O(n1.3) | O(1) | 不稳定 |
| 快速排序 | O(nlogn)O(n \log n)O(nlogn) | O(logn)O( \log n)O(logn) | 不稳定 |
| 堆排序 | O(nlogn)O(n \log n)O(nlogn) | O(1) | 不稳定 |
| 归并排序 | O(nlogn)O(n \log n)O(nlogn) | O(n) | 稳定 |
| 基数排序 | O(d(n+rd))O(d(n+rd))O(d(n+rd)) | O(rd) | 稳定 |
第4章 操作系统知识
4.1 作业调度算法
响应比:
Rp=作业响应时间作业执行时间R_p=\frac{作业响应时间}{作业执行时间}Rp=作业执行时间作业响应时间
作业响应时间为作业进入系统后的等候时间与作业的执行时间之和,即
Rp=1+作业响应时间作业执行时间R_p=1+\frac{作业响应时间}{作业执行时间}Rp=1+作业执行时间作业响应时间
第5章 软件工程基础知识
5.1 COCOMO估算模型
一种精确的、易于使用的成本估算模型,按详细程度分类:
1)基本COCOMO模型
一个静态单变更模型,用于对整个软件系统进行估算。其公式如下:
E=a(L)b,D=cEdE=a(L)^b,D=cE^dE=a(L)b,D=cEd
其中:
- E表示工作量,单位是人月
- L是项目的源代码行估计值,不包括程序中的注释及文档,其单位是千行代码
- a,b,c,d是常数
2)中级COCOMO模型
静态多变更模型,将软件系统模型分为系统和部件两个层次。公式如下:
E=a(L)bEAFE=a(L)^bEAFE=a(L)bEAF
- EAF:工作量调节因子
- L:软件产品的目标代码行数,单位是千行代码
- a,b是常数
5.2 Putnam估算模型
一种动态多变量模型,假设在软件开发的整个生存周期中工作量有特定的分布。公式如下:
L=CkE1/3td4/3L=C_kE^{1/3}t_d^{4/3}L=CkE1/3td4/3
- L表示源程序代码行数(LOC)
- tdt_dtd表示开发持续时间(年)
- E是包括软件开发和维护在整个生存期所花费的工作量(人年)
- CkC_kCk表示技术状态常数,其值依赖于开发环境
5.3 McCabe度量法
在一个强连通的有向图G中,环的个数V(G)由下面公式给出:
V(G)=m−n+2pV(G)=m-n+2pV(G)=m−n+2p
- V(G):有向图G中的环路数
- m: 图G中弧的个数
- n: 图G中的结点数
- p: 图G中的强连通分量个数
第8章 算法设计与分析
8.1 一般算法在平均情况下的复杂度分析
T(n)=∑i=1mpi×tiT(n)=\sum_{i=1}^m p_i\times t_iT(n)=∑i=1mpi×ti
- pip_ipi:第i类输入发生的概率
- tit_iti:第i类输入的执行时间,
- 输入分为m类
本文涵盖了计算机系统的基础知识,包括机器字长、浮点数的IEEE754标准、海明码、Cache性能分析、磁盘容量计算以及计算机的使用效率和可靠性模型。同时,讨论了数据结构中的二叉树性质、哈希解决冲突方法和各种排序算法的性能比较。此外,介绍了软件工程中的COCOMO和Putnam成本估算模型以及McCabe度量法。
434

被折叠的 条评论
为什么被折叠?



