计算机组成原理笔记(二)
计算机组成原理笔记(二)
1、第二章:数据的表示和运算
通过下面的思维导图来依次分享「数据的表示和运算」里面重要知识点的笔记。
2、第一节:数制与编码
1. 真值:需要用正、负号来分别表示正数(正号可以省略)、负数的数称为真值,真值是机器数所代表的实际值。
2. 机器数:将数据的符号数字化,即用“0”表示“正”,用“1”表示“负”。
3. BCD码:二进制的十进制数(Binary-coded Decimal,BCD)通常采用4位二进制数来表示一位十进制数中的0~9这10个数码。以下为几种常用的BCD码:
①8421码(最常用):是一种有权码,设其各位的数值为a3、a2、a1、a0,则权值从高到低依次为8421,即它表示的十进制数为:D=8a3+4a2+2a1+1a0。
②余三码:是一种无权码,是在8421码的基础上加上(0011)2 形成的。
③2421码:是一种有权码,权值由高到低分别为2421,特点是大于等于5的4位二进制数中最高位为1,小于5的最高位为0。
4. 区位码与国标码:
①区位码:用两个字节表示一个汉字,每个字节用七位码,它将汉字和图标符号排列在一个94行94列的二维代码表中。区位码是4位十进制数,前2位是区码,后2位是位码,故称为区位码。
②国标码:是将十进制的区位码转换为十六进制数后,再在每个字节上加上20H。国标码两个字节的最高位都是0,
③区位码和国标码都是输入码,其和汉字内码的关系(十六进制)如下:
国标码 = (区位码)16 + 2020H
汉字内码 = (国标码)16 +8080H
5. 主存中字的存放方式:
①小端模式:先存储低位字节、后存储高位字节的顺序(即从低位字节向高位字节顺序)存放字。
②大端模式:先存储低高字节、后存储低位字节的顺序(即从高位字节向低位字节顺序)存放字。
6. 校验码:是指能够发现或自动纠正错误的数据编码,也称为检错纠错编码。校验码的原理是通过增加一些冗余码,来检验或纠错编码。
3、第二节:定点数的表示与运算
1. 定点数:即小数点的位置固定,分为定点小数和定点整数,如下:
①定点小数:是纯小数,约定小数点位置在符号之后、有效数值部分最高位之前
②定点整数:是纯整数,约定小数点位置在有效数值部分的最低位之后。
2. 原码:用机器数的最高位表示该数的符号,其余的各位表示数的绝对值。
3. 补码:采用补码表示法,便于将加减法则统一采用加法操作实现。对于正数,补码与原码的表示相同;对于负数,原码符号位不变,数值部分按位取反,末位加1(即所谓“取反加1”)。
4. 反码:通常用来作为由原码求补码或者由补码求原码的中间过渡。对于正数,反码与原码的表示相同;对于负数,原码符号位不变,数值部分按位取反。
5. 补码定点数的加/减法运算:补码加减法运算规则简单,易于实现,因此计算机系统中普遍采用补码加减法运算。补码运算的特点如下:
①参与运算的两个操作数均用补码表示;
②按二进制运算规则运算,逢二进一;
③符号位与数值位按同样规则一起参与运算,符号位运算产生的进位要丢掉,结果的符号位由运算得出;
④补码加减运算时,若做加法,则两数的补码直接相加;若做减法,则将被减数与减数的机器数负数相加;
⑤补码运算的结果也为补码。
4、第三节:浮点数的表示与运算
1. 浮点数的表示格式:浮点数由阶码和尾数两部分组成,表示为 N=r^E x M(其中r是浮点数阶码的底,与尾数的基相同,通常为r=2,E和M都是带符号的定点数,E称为阶码,M称为尾数)
2. 浮点数的运算:浮点数运算特点是阶码运算和尾码运算分开进行,浮点数的加/减运算一律采用补码。浮点数的加/减运算分如下几步:
①对阶:目的是使两个操作数的小数位置对齐,即使得两个数的阶码相等。具体为,先求阶差,然后以小阶向大阶看齐的原则,将阶码小的尾数右移一位(基数为2),阶加1,直到两个数的阶码相同为止。尾数右移时,舍弃掉有效位会产生误差,影响精度;
②尾数求和:将对阶后的尾数按定点数加(减)运算规则运算;
③规则化:当尾数的最高数值位与符号位不同时,即为规格化形式。规格化分为左规和右规两种:
左规:当尾数出现00.0XX...X或11.1XX...X时,需要左规,即尾数左移1位,和的阶码减1,直到尾数为00.1XX...X或01.XXX...X
右规:当尾数求和结果溢出(如尾数为10.XX...X或01.XX...X)时,需要右规,即尾数右移一位,和的阶码加1.
④舍入:在对阶和右规的过程中,可能会将尾数低位丢失,引起误差,影响精度,常见的舍入方法有:“0”舍“1”入法和恒置“1”法;
“0”舍“1”入法:在尾数右移时,被移去的最高数值位为0,则舍去;被移去的最高数值位为1,则在尾数的末位加1。
恒置“1”法:尾数右移时,不论丢掉的最高数值位是“1”还是“0”,都使右移后的尾数末位恒置“1”。
⑤溢出判断:浮点数的溢出与否是由阶码的符号决定的。以双符号位补码为例,当阶码的符号位出现“01”时,即阶码大于最大阶码,表示上溢,进入中断处理;当阶码的符号位出现“10”时,即阶码小于最小阶码,表示下溢,按机器零处理。
5、第四节:算数逻辑单元ALU
1. 运算器:在计算机中,运算器承担了执行各种算数和逻辑运算的工作,运算器由算术逻辑单元ALU(Arithmetic Logic Unit)、累加器、状态寄存器和通用寄存器组等组成。
2. 算数逻辑单元ALU:基本功能包括加、减、乘、除四则运算,与、或、非、异或等逻辑运算,以及移位、求补等操作。
3. 计算机运行时,运算器的操作和操作种类由控制器决定。运算器处理的数据来自存储器;处理后的结果数据通常送回寄存器,或暂存器。
通过博客将自己的学习笔记展现出来,也是对自己学习的一种记录。
扫一扫,关注公众号