1.循环队列
出队:(头+1)%maxsize
入队:(尾+1)%maxsize
求队长:(尾+maxsize-头)%maxsize
2.求子串的个数
依次排开,子串是连续的,假设含一个字符的子串有n个,两个字符的子串有n-1个…n个字符的子串有1个,!!!空串也算一个,等差数列求和n(n+1)/2+1(空串)
3.稀疏矩阵的三元组表示法,只存储非零元的行数和列数和value值,所占空间大小要加上本身三个字段的大小。
4.折半查找的mid是向下取整
5.负载因子:表示散列表的装满程度,散列表的记录数/散列表的长度,影响散列表查找效率的三个因素:装填因子(负载因子)、散列函数、处理冲突的办法
6.散列表:通过关键字直接访问存储地址,建立了关键字和存储地址之间的映射关系
7.AVL:主要是为了避免二叉排序树的性能降低,树太高会影响查找效率,矮胖的树更查找效率更高,AVL就是BST的plus版
8.2的16次方是65536
9.后缀为B表示二进制,为D-十进制,H-十六进制,O-八进制
10.反码,正数的反码不变,负数的反码(用原码表示的)通过符号位不变,其余各位取反得到
11.SRAM和DRA比较
对比 | SRAM | DRAM |
---|---|---|
是否需要刷新电路 | 不需要 | 需要 |
用途 | 用作cache | 用作主存 |
速度 | 快 | 慢于SRAM |
价格 | 高 | 低 |
12.寻址方式对比
寻址方式 | 指令格式 | 特点 | 用途/识记 |
---|---|---|---|
立即寻址 | OP+立即数 | 数据就在指令中,执行速度快,但包含的数据长度指令长度会较长 | 适用于设定初值,提供常数的场合 |
寄存器寻址 | OP+寄存器编号 | 寄存器有限,编号较短,比访问主存更快,功耗更小,指令码长度最短 | EA=R |
直接寻址 | OP+操作数的地址 | 操作数在主存,需要访问主存,并且给出的地址格式较长,不好修改,对于定长指令码格式受限 | 与立即寻址区分 |
寄存器间接寻址 | OP+寄存器地址 | EA=(R),操作数在主存中,需要通过访问寄存器里存放的操作码在主存中的地址,指令码长不长,且有效充当指针,访问主存大片空间 | 循环程序 |
相对寻址 | OP+D(形式地址,带符号的补码表示) | 最终地址由PC内容作为基地址与偏移量相加得到有效EA,地址操作数在主存中 | EA=D+(PC),用于跳转地址生成 |
基址寻址 | OP+B+D | 可寻址范围大,指令码格式短,与相对寻址区分,本质区别在于提供的基址寄存器不一样,前者由PC的内容提供 | EA=(基址寄存器RB)+D |
变址寻址 | OP+B+D | B代表变址寄存器 | 数组遍历 |
堆栈寻址 | 略 | 略 | EA=(SP) |
13.单周期CPUvs多周期CPU
单周期cpu:一条一条执行,一个时钟周期执行一个指令,cpi=1,时钟周期取自执行最长的指令所用的时间(存疑)
多周期:将一条指令的执行划分为多个阶段,每个阶段所用时间可以不相同,类比流水线技术,效率更高。
14.unsigned 表示的是无符号数
15.全相联的地址映射下,相联存储器的构成:主存块号,cache块号,标记位,why?全相联下自由变换,主存任何一块都可以装入cache,相联存储表作为主存和cache之间的桥梁,质需要存储双方的块号即可,反映出地址的变换。
16.间接寻址:顾名思义,间接的存储器里存放的是立即数的地址,需要先访问地址的单元,再通过地址单元所给的地址访问立即数所在的地址总共需要两次读取。
17.汇编程序员可见的只有程序计数器
18.计算机内部信息都以二进制存储主要是由其物理器件的性能所决定的,高低电平表示0和1速度很快
19.float转int型数据可能会产生溢出,why?float型数据可表达的数的范围比int大,代价就是精度的表示上不如int型
参考:
1.http://t.csdn.cn/CjpQ4
2.http://t.csdn.cn/OzPSa
3.http://t.csdn.cn/TieS8