赞
踩
一个位有两种状态 0、1。 0 代表逻辑 “假”, 1 代表逻辑 “真”。 非(NOT)、与(AND)、 或(OR) 、异或(XOR) 是四种逻辑运算符,可用来操纵二进制位。
NOT:只有一个输入,输出位与输入位相反。
NOT 0 = 1,NOT 1 = 0
AND:如果一个输入中有一位是0,结果为0。
对于 x=0或1,有 x AND 0 = 0 和 0 AND x = 0
OR:如果一个输入中有一位是1 ,结果为1。
对于 x=0或1,有 x OR 1 = 1 和 1 OR x = 1
XOR:如果输入中的一位是1 ,那结果就是与其他输入中相应位相反。
对于 x=0或1,有 x XOR 1 = NOT x 和 1 XOR x = NOT x
XOR运算符可用其它三个模拟。
x XOR y = [x AND (NOT y)] OR [(NOT x) AND y]
相同的4个运算符(NOT, AND、 OR和XOR)可以被应用到n位模式。
NOT运算符的唯一应用就是对整个模式求反。 对模式应用此运算符把每个0变成1 , 把每个1 变成0。这种方式有时候也称为一个求反运算。
AND运算可以把一个位模式的指定位复位(置0)。这种情况下的第二个输入称为掩码。 掩码中的0位对第一个输入中相应的位进行复位。掩码中的1位使得第一个输入中相应的位保持不变。
使用掩码复位模式的最左5位。 用模式10100110测试掩码
1 0 1 0 0 1 1 0 输入
AND 0 0 0 0 0 1 1 0 掩码
0 0 0 0 0 1 1 0 输出
OR运算的一个应用是把一个位模式的指定位置位(置1 )。掩码中的1位对第一个输入中的相应的位进置位, 而掩码中的0位使第一个输入中相应的位保持不变。
使用掩码把一个位模式的最左5位置位。用模式10100110测试掩码
1 0 1 0 0 1 1 0 输入
OR 1 1 1 1 1 0 0 0 掩码
0 0 0 0 0 1 1 0 输出
XOR运算的一个应用是便指定的位反转,掩码中的1位对第一个输入中的相应的位进行反转,而掩码巾的0位使第一个输入中相应的位保持不变。
用掩码来反转一个模式的最左边5位。 用模式10100110检验掩码。
1 0 1 0 0 1 1 0 输入
XOR 1 1 1 1 1 0 0 0 掩码
0 1 0 1 1 1 1 0 输出
移位运算移动模式中的位,改变位的位置。可分为逻辑移位运算和算术移位运算。
逻辑移位运算应用于不带符号位的数的模式。原因是这些移位运算可能会改变数的符号,此符号是由模式中最左位定义的
逻辑右移运算把每一位向右移动一个位置。 在n位模式中, 最右位丢失,最左位填0。
逻辑左移运算把每一位向左移动一个位置。 在n位模式中, 最左位丢失,最右位填0。
循环移位运算(旋转运算)对位进行移位,但没有位被丢弃或增加。
循环右移(或右旋转)把每一位向右移动一个位置,最右位被回环,成为最左位。
循环左移(或左旋转)把每一位向左移动一个位置,最左位被回环,成为最右位。
算术移位运算用于二进制补码格式表示的带符号位的整数。算术右移被用来对整数除以2;而算术左移被用来对整数乘以2。这些运算都不应该改变符号位(最左位)。
算术右移保留符号位,同时也把它复制,放入相邻的右边的位中,因此符号被保存。
算术左移丢弃符号位,接受它的左边的位作为符号位。如果新的符号位与原先的相同,那么运算成功,否则发生上溢或下溢,结果是非法的。
整数以二进制补码表示法存储,正数的补码就是它的原码,负数的补码等于原码的反码加1。
二进制补码表示法的一个优点是加法和减法间没有区别。当遇到减法时,只简单地把它转变为加法,但要为第二个数求二进制的补 。
二进制补码中的加法就像十进制中的加法一样,列与列相加,如果有进位,就加到下一列上。最后一列的进位被舍弃(因为它超出了存储范围)。在每一列中,如果没有从前一列来的进位,那就有两位相加;或者如果有从前一列来的进位,那就有三位相加。在每一列中,1的数目可以是0、1、2或3。无论1、2、3,进位只进1。
a. 可以证明,如果AM≥BM那就有上溢,结果是一个正数。如果有上溢,则舍弃上溢,使结果的符号取A的符号。
b. 可以证明,AM<BM,那就没有上溢,结果是一个负数。如果没有上溢,则取结果的二进制补码,使结果的符号取B的符号。
像加、减、乘和除这样的算术运算都能应用于用浮点数格式存储的实数上。两实数的乘法涉及两个用符号加绝对值表示的整数的乘法;两实数的除法涉及两个用符号加绝对值表示的整数的除法。
以浮点数存储的实数的加法和减法被简化为小数点对齐后以符号加绝对值格式(符号和尾数的组合)存储的两整数的加法和减法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。