1.原码,反码,补码
定义:对于正数,三者一致;对于负数,反码为符号位不变取反,补码为反码加一
理解:反码可以解决减法问题,不用定义减法器;补码可以解决0的映射有两个的问题,做到所有的值只有一个映射。
2.缓存映射:直接映像,全相联映像,组相联映像
定义:直接映像,直接查找块,比较区。全相联,借助相联存储器存储一对一的块对应关系。组相联,大的组用直接映像,组里面的块用全相联。
3.流水线
加速比:单线程比多线程的消耗
流水线异步控制:可能产生冒险(指令可能需要以前 指令的结果)
4.模块的内聚
功能内聚>信息内聚>通信内聚>过程内聚>时间内聚>逻辑内聚
5.测试概念
驱动模块:能驱动测试模块的程序模块。桩模块:被测程序的依赖模块
6.依赖和关联
依赖是弱关联,关联是强依赖
7.队列
假溢出:还有空闲空间的溢出。
循环队列:为解决假溢出问题而产生。
8.二叉树
平衡二叉树:左右子树高度差不超过1
完全二叉树:叶子只能在最下层和次下层,且为左。
最优二叉树:又为哈弗曼树,带权路径最小
满二叉树:只有最后一层有叶子。
红黑树:自平衡的平衡二叉树,数据有序。
9.设计模式中
访问者模式:需要增加新操作但是又不想改变类定义。那么设计一个访问者模式,把新操作交给别人去定义,将自己的对象引用出去。
10.KMP算法
求解的关键在于把模式串看成一把不规则齿轮,小的齿轮匹配不上,可能大范围的齿轮匹配是可以的。
所以求next[j] 时的k值为:max{k|1<k<j,p1p2LPk-1 = Pj-k+1pj-k+2Lpj-1}
11.加密算法
对称加密和非对称加密,对称加密有DES,非对称加密有很多,ECC,DSA,RSA,都需要公钥和私钥。