第一节:进位计数制 |
十进制转其他进制 |
| |||||
真值和机器数 |
|
第二节:字符与字符串(几乎不考) |
英文字符在计算机内的表示 |
| |||
中文字符在计算机内的表示 |
| |||
字符串的存储 |
|
第三节:校验码 | ||||||||||
| ||||||||||
奇偶校验码 |
奇校验码 | 整个校验码(有效信息位和校验位)中“1”的个数为奇数,加上校验位后异或运算等于1 | |||||
偶校验码 | 整个校验码(有效信息位和校验位)中“1”的个数为偶数,加上校验位后异或运算等于0 | |||||
图示 | ||||||
例题 |
| |||||
注意 | 偶校验:1010 —> 01010,能发现奇数位错误,但无法确定是哪一位出错 【1个校验位只能携带2种状态信息(对/错)】 |
海明校验码 |
海明码设计思路 | 将信息位分组进行偶校验—> 多个校验位—>多个校验位标注出错位置 多个校验位能携带多种状态信息(对/错,错在哪) | ||||||
需要多少个校验位 | |||||||
步骤 | ①确定校验位数量→②确定校验位的分布→③求校验位的值→④检错纠错 补充:如果数据为从小到大,也是一样的,换了顺序而已 | ||||||
能力 | 海明码的检错,纠错能力:纠错能力——1位,检错能力——2位 | ||||||
存在问题 |
|
循环冗余校验码(CRC码) |
基本 思想 | 数据发送、接受方约定一个“除数”K个信息位+R个校验位作为“被除数”,添加校验位后需保证除法的余数为0收到数据后,进行除法检查余数是否为0若余数非0说明出错,则进行重传或纠错 |
如何 构造 | 如果出错的位数没有超过余数所能表示的范围,那么出错位于余数是相对应的 |
如何检错纠错 | K个信息位,R个校验位,若生成多项式选择得当,且𝟐𝑹≥𝑲+𝑹+𝟏 ,则CRC码可以纠正1位错【一般CRC用于计算机网络当中,一次传输几千个bit+几个校验位,所以通常只用来“检错”】 |
第四节:定点数的表示 |
定点数 | 小数点的位置固定【996.007——常规计数】 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
浮点数 | 小数点的位置不固定【9.96007×102——科学计数法】 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
无符 号数 | 整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
有符 号数 |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
总结 |
第五节:原码,反码,补码,移码的作用 |
背景 |
| |||
补码的作用 | 使用补码可将减法操作转变为等价的加法,ALU中无需集成减法器。执行加法操作时,符号位一起参与运算 | |||
移码的作用 | 移码表示的整数很方便对比大小,因为抛开符号而言,随着真值增大移码增大移码全0真值最小,移码全1真值最大 |
第六节:定点数的运算(移位运算,加减运算,乘法运算,除法运算) |
⭐移位运算 |
⭐ 移位 |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
逻辑 移位 |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
循环 移位 |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
注意 | 由于原、反、补码位数有限,因此某些时候算数移位不能精确等效乘+法、除法 |
⭐加减运算&溢出判断 |
原码的加减法 |
| ||||||||||||||
补码的加减法 |
| ||||||||||||||
溢出 判断 |
| ||||||||||||||
符号 扩展 | int→long,短数据→长数据。多出来的那些位应该怎么填补? |
定点数原码乘法运算(几乎不考) |
运算器 | 用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非)
| ||||||||||||||||
原码的一位乘法 |
|
定点数补码乘法运算(几乎不考) |
问题 | 设机器字长为5位(含1位符号位,n=4),x = −0.1101,y = +0.1011,采用Booth算法求x·y | |||||
对比 |
| |||||
计算 过程 |
|
定点数原码除法运算(几乎不考) |
手算 除法 | 设机器字长为5位(含1位符号位,n=4),x=0.1011,y=0.1101,求x/y【两个正数相除】
| |||||||||||||||||||||||
运算器 | 用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非)
| |||||||||||||||||||||||
原码 除法 | 设机器字长为5位(含1位符号位,n=4),x=0.1011,y=0.1101,采用原码恢复余数法求x/y |x|=0.1011,|y|=0.1101,[|y|]补=0.1101,[−|y|]补=1.0011 ①实现方法:先减法再左移,重复n次→上商0或1,被除数/余数-除数为正则1,为负则0,余数末尾补0,补0的实际意义是ACC和MQ整体左移,而MQ起初存的是全0的商,所以左移ACC余数末尾就补0了 ②符号单独处理:符号位= xs⊕ys
| |||||||||||||||||||||||
原码 除法 加减交替法 |
|
定点数补码除法运算(几乎不考) |
补码 除法 | 补码的除法运算与原码的加减交替法/不恢复余数法有很多类似的地 方,补码的除法也是使用加减交替法来进行计算的。 原理:余数与除数同号,说明够减,如4-2=2够减商1,反之不够减掉 |
第七节:进位计数制 |
第八节:数据的存储和排列 |
大端模式 | 最高的有效字节(MSB)放到地址的低位,最低有效字节(LSB)放到地址的高位【便于人类阅读】 |
小端模式 | 最低有效字节(LSB)放到地址的低位,最高的有效字节(MSB)放到地址的高位【便于机器处理】 |
边界对齐 | 现代计算机通常是按字节编址,即每个字节对应1个地址 通常也支持按字、按半字、按字节寻址。 假设存储字长为32位,则1个字=32bit,半字=16bit。每次访存只能读/写1个字(只能读一行) |
第九节:浮点数的表示和运算 |
浮点数的表示 |
浮点数的作用 | 定点数可表示的数字范围有限,但我们不能无限制地增加数据的长度——浮点数的作用就是在位数不变的情况下增加数据表示范围 | |||||||||||||||
浮点数的基本原理 |
| |||||||||||||||
浮点数的规格化 |
| |||||||||||||||
浮点数的表示范围 已删 |
|
IEEE 754标准(阶码用移码表示)几乎必考 |
移码 | 补码的基础上将符号位取反。注意:移码只能用于表示整数【用来表示阶码】 | |||||||||||||||
移码的定义 |
| |||||||||||||||
IEEE754标准 |
|
浮点数的加减运算与强制类型转换 |
浮点数加减运算步骤 | 9.85211×10^12 + 9.96007×10^10
| ||||||||||||||||
强制类型转换 | char →int→long→double float→double int→float:可能损失精度 【int只能填入到float尾数部分,阶码部分为默认为0,所以float尾数23+1位,转float精度损失】 float→int:可能溢出及损失精度 32位 int:表示整数,范围-2^31 ~2^31-1 ,有效数字32位 float:表示整数及小数,范围±[2^-126 ~2^127×(2−2^−23)],有效数字23+1=24位 |
第十节:算数逻辑单元(电路基本原理&加法器设计) |
算术逻辑单元的作用与原理 |
| ||||||||||||||||||
电路基础知识 逻辑 复合 逻辑 |
| ||||||||||||||||||
加法器的实现 |
|
第十节:算数逻辑单元——加法器,ALU的改进(非重点有印象即可) |
并行加法器的优化 |
| |||||||||||||||||||||||||||||||||||||||||||
ALU芯片优化 |
|
串行加法器→串行进位的并行加法器→组内并行、组间串行进位的加法器→组内并行、组间并行进位的加法器 |