位和运算符()。
参加运算的2个数据通过二进制位进行and运算。
运算规则: 00=0; 01=0; 10=0; 11=1;
也就是说,两个人同时变成“1”才变成“1”,否则变成0
例如,35即0000 0011 0000 0101=00000001,因此35的值为1。
另外,负数以补数的形式按位参与运算。
“与”运算的特殊用途:
(1)通关。 如果想要将一个单元格归零,则即使其所有二进制比特都为0,由于各位都是零的数值相加,结果也为零。
)2)取一个数的中指定位
方法:查找与x取的位对应的数,该数对应的位为1,其余位为零,将该数与x进行“与”运算,即可得到x中指定的位。
例如:如果X=10101110,
取x的后4位,用X 0000 1111=00001110得到;
也可以用来取x的2、4、6位。
按位或运算符
参与运算的两个对象在二进制位上进行or运算。
运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1;
换句话说,如果参加运算的两个对象中的一个是1,则该值是1。
例如,3|5,即00000011| 0000 0101=00000111,因此3|5的价值为7。
另外,负数以补码的形式按位或参加运算。
“或运算”的特殊作用:
)1)常用于一个数据的位置1。
方法:找出与x对应并置1位的数。 那个数的对应位置是1,剩下的位置是0。 这个数等于x,或者x的一部分的位置可以为1。
例:可以用X| 0000 1111=1010 1111得到X=10100000的低4个位置1。
异或运算符(^ )。
参加运算的2个数据通过二进制位进行异或运算。
运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0;
也就是说,对于参与运算的两个对象,如果两个对应的位“不同”,则该位的结果为1,否则为0。
异或运算的特殊作用:
)1)反转特定位,查找与x要反转的各位对应的数量。 那个数的对应位是1,剩下的位是0。 该数与对应于x的位进行异或即可。
例如: X=10101110,将x的后4位反转,可以通过X ^0000 1111=1010 0001得到。
)2)与0不同,或者保留原始值,X ^ 00000000=1010 1110。
下面重点说明异或。 异或是指像1 1=0,0=0,10=1那样,实际上不进位的加法。
异或的几个性质:
1、交换律
2、结合律(即(a^b)^c == a^(b^c))
3、对于任何数x,都有x^x=0,x^0=x
4、自反性: a^b^b=a^0=a;
异或运算最常见于多项式除法,不过它最重要的性质还是自反性:A XOR B XOR B = A,即对给定的数A,用同样的运算因子(B)作两次异或运算后仍得到A本身。这是一个神奇的性质,利用这个性质,可以获得许多有趣的应用。 例如,所有的程序教科书都会向初学者指出,要交换两个变量的值,必须要引入一个中间变量。但如果使用异或,就可以节约一个变量的存储空间: 设有A,B两个变量,存储的值分别为a,b,则以下三行表达式将互换他们的值 表达式 (值) :
a=a^b;
b=b^a;
a=a^b;
168飞艇6种不亏钱的方法 1111=1010 0001得到。
)2)与0不同,或者保留原始值,X ^ 00000000=1010 1110。
下面重点说明异或。 异或是指像1 1=0,0=0,10=1那样,实际上不进位的加法。
异或的几个性质:
1、交换律
2、结合律(即(a^b)^c == a^(b^c))
3、对于任何数x,都有x^x=0,x^0=x
4、自反性: a^b^b=a^0=a;
异或运算最常见于多项式除法,不过它最重要的性质还是自反性:A XOR B XOR B = A,即对给定的数A,用同样的运算因子(B)作两次异或运算后仍得到A本身。这是一个神奇的性质,利用这个性质,可以获得许多有趣的应用。 例如,所有的程序教科书都会向初学者指出,要交换两个变量的值,必须要引入一个中间变量。但如果使用异或,就可以节约一个变量的存储空间: 设有A,B两个变量,存储的值分别为a,b,则以下三行表达式将互换他们的值 表达式 (值) :
a=a^b;
b=b^a;
a=a^b;