运算器
数据的表示与运算
- 进制之间的转换
- 定点数据的表示码:原码、反码、补码以及之间的关联与区别,运算,溢出监测
- 位移预算,原码定点数加减运算、补码定点数的加减运算、定点数乘除运算、溢出概念和判别方法
- 浮点数的表示(浮点数的表示范围和IEEE754标准)和浮点数的加减运算
- 串行加法器和并行加法器、算术逻辑单元ALU的功能和结构
计算内部信息(程序和数据,二进制表示)
- 控制信息:指令和控制字
- 数据信息:数值型数据(定点数,浮点数),非数值型数据(字符串,数字串,汉字,图像,音频)
unsigned u = 21736;
int m,n;
float x;
double y;
- 计算机中常用的数据表示格式:定点格式和浮点格式
- 定点格式容许的数值范围小,要求硬件简单
- 浮点格式容许的数值范围大,要求硬件复杂
- 数值范围是指一种类型的数据能表示的最大最小值
- 数据精度通常是指实数所能表示的有效数字的位数
定点格式
- n指的是数值位的位数(例8位是2的八次方减1,2的n次方)
- 有符号数的表示(n+1,n表数值位,1是符号位,0正1负)
- 纯小数(默认在符号位与最大数值之间)
- 存整数的表示(默认小数点在最后,数值各位均为0时绝对值最小,数值位各位均为1时绝对值最大)
BCD码
- 十进制加法器可由bcd码(二一十进制编码)来设计,他可以在二进制加法器的上加上适当的“校正”逻辑来实现,该校正逻辑可将二进制的‘和’改变所要求的十进制格式
- 机器码表示
- 原码表示法,就是数值的真值(绝对值)前面加一个符号位
- 正数与负数质之间的转换,数值位不变数值位取反
- 原码中的0表示不是唯一的,有正0和负0之分
- 原码字长为n,总共有编码2的n次方,但对应的真值只有2n-1个(原因0占了两个位)
- 负数原码形式上大于正数的原码(符号位):
- 原码的移位规则:
- 符号位不变,数值部分左移或右移,移出的空位填‘0’。(左移相当乘以 2,右移相当除以2)
- 整数前面补0,小数后面补0
- 优点,原码简单易懂,与真值转换容易,实现乘除法方便(乘除法数值位由于两数的绝对值相乘/除得到,符号位由两数的符号位异或即可)
- 不足,1、原码中的0的表示有两种,给使用带来了不便/原码表示的加减法运算复杂,这是因为当两数相加时,如果是同号则数值相加;2、如果是异号,则要进行减法/3、而进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号
- 补码
- 钟表周期性的回归位置(加代替减) 本身。
- 补码的定义:
- [X]补 = M + X (Mod M)
- 正数的补码等于其本身
- 负数补码是Mod减去其绝对值
- 补码的性质:特殊值的表示:0的补码表示
- -1和-2的n次方补码小数
- [-1]补 = 2 +(-1)=[-0]原
- [ -2n]补 =2n+1 + (-2n) = [-0]原
- 补码的表示范围
- 一个n+1位定点的整数补码的表示范围是
- 一个n+1位定点的小数补码的表示范围是
- 原码的范围
+ 一个n+1位定点的整数原码的表示范围是
+ -(2n-1) <=x<=2n-1
+ 一个n+1位定点的小数原码的表示范围是
+ -(1-2-n)1 <=x<= 1- 2-n - 补码和原码的关系
- 若 x >= 0 ,[x]原 = [x]补码
- 若x < 0,对于按位取反(符号位不变)后再在最低位加1得到补码;反之补码除符号以外各位取反,再在最低位加1,即可得到原码
- 注意:补码中特殊的数-1(纯小数)和-2n(纯整数)的表示,在原码中没有相对应的表示
- [x]补 和 [-x]补的关系
- 已知[X]补,将[x]补的各位(含符号位)取反,然后在最低位上加1,即得到[-x]补。反之亦然
- 补码的算术移位规则:
- 补位的左移(乘2):符号位不变,数值部分左移,最低位移除的空位填0
- 补位右移(除2):符号位不变,疏于职部分右移,最高位移除的空位填符号位
- 负数补码形式上大于正数的补码
- 补码的位扩展
- 定点小数:在最低位用0扩展
- 定点正数:在最高位用符号位扩展
- 常用求补码的方法(与定义求补码比较)
- 若x >= 0 则[x]补=x,符号位为0
- 若x <0,则将绝对值的各位取反,然后在最低为上加1,符号位为1,即得到[x]补
- 反码表示法
- 二进制的各位数码0变为1,1变为0.
- 反码主要作用就是求补码
- 对于0,有+0和-0之分
- 反码的表示范围等于原码
- 移码表示法(把补码的模减去1)
- 补码表示很难直接判断其值大小
- 正数是1表示,负数是用0表示
- 移码表示的实质是把真值映射到一个正数域,因此移码的大小可直观的反应真值的大小
- 不管正数还是负数,用移码表示时,可以按无符号数比较大小
- 移码的范围与补码的一致
- 校验码
- 元件故障\噪声干扰等各种因素常常导致计算机在处理信息过程中出现错误,为了防止错误,可将信号采用专门的逻辑线路进行编码以检测错误,甚至校正错误,通常的方法是,在每个字上添加一些校验位,用来确定字中出现错误的位置
- A 奇偶校验码
- 组成奇偶检验码的基本方法:在n位有效信息位上增加一个二进制校验位,构成一个n+1奇偶校验码
- 奇校验:使用n+1位的奇偶校验中的个数位奇数
- 偶校验:使用n+1位的奇偶校验中的个数位偶数