第四章 - 数据运算
逻辑运算
指那些应用于模式中的一个二进制位,或在两个模式中相应的两个二进制位的相同基本运算。
位层次
非(NOT),与(AND),或(OR)和异或(XOR)
当输入相同时,输出为0 ,当输入不同时,输出为1
x XOR y <-> [x AND (NOT y)]OR[(NOT x) AND y]
模式层次
上面的4个运算符可以被用到n位的模式。
应用:
1.求反
2.使指定的位复位(置0)
AND运算的一个应用就是把一个位模式的指定位复位,这种情况下,第二个输入称为掩码。
3.对指定的位置位(置1)
OR运算的一个应用就是把一个位模式的指定位置位。同样,第二个输入称为掩码。
4.对指定的位反转
XOR运算的一个应用就是使指定的位反转。
移位运算
逻辑移位运算
此运算应用于不带符号位的数的模式,原因是运算中可能会改变数的符号,此符号由最左位定义的。
逻辑移位(普通的和循环的)
算术移位:假定位模式是用二进制补码格式表示的带符号位的整数。这些运算不应该改变符号位。
算术右移保留符号位,同时复制,放入相邻的右边的位中。算术左移丢弃符号位,接受他的左边的位作为符号位。
算术运算
算术运算包括加,减,乘,除,适用于整数和浮点数。
1.二进制补码中的加减法
二进制补码的减法(补码的补码等于本身)
A+B <-> A+(B的反 +1)
2.符号加绝对值整数的加减法
过程:
1)检查运算,如果运算是减法,那么改变第二个整数(B)的符号(取补码)。
2)对两符号应用XOR运算,如果结果是0,则说明符号相同。
3)如果结果符号是相同的,得到RM=(AM)+(BM),和 RS=AS(下标M表示绝对值,S表示符号)
4)如果符号位不同,R=±(AM-BM),结果的符号是较大绝对值整数的符号。
a.可以证明(不知道怎么证明),如果AM≥BM,那就有上溢,结果是一个正数,因此,如果有上溢,则舍弃上溢,使结果的符号取A的符号
b.可以证明(不知道怎么证明),如果AM<BM,那就没有上溢,结果是一个负数,因此,如果没有上溢,则取结果的二进制补码,使结果的符号取B的符号
实数的算术运算
以浮点数存储的实数的加法和减法被简化为小数点对齐后以符号加绝对值格式(符号和尾数的组合)存储的两整数的加法和减法
过程:
1)如果两数(A或B)中任一个为0,结果为0,过程终止。
2)如果运算是减法,那么改变第二个数(B)的符号来模拟加法。
3)通过在尾数中包含隐含的1和增加指数,两个数去规范化。此时的尾数部分看做一个整数。
4)然后统一指数,这意味着我们增加比较小的指数,移位相应的尾数,知道两个数具有相同的指数。
5)把每个数的符号和尾数的组合看成一个符号加绝对值格式的整数。然后相加
6)最后规范化数。
这里用余127码