您的位置:首页 > 其它

按位异或 !

2016-05-16 22:13 239 查看
 分为 

&

|

~

……

其中

&符号 100  &111 就是 100 &符号必须全为真才可以;

|符号 100 |111 就是 111 | 符号一真一假就为真 ;

~取反 全部去反 ~111 =000

异或符号打不出来

100 111 相同就为0 不同就为 1;

1 1 1;

程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6
and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。

=== 1. and运算 ===

and运算通常用于二进制取位操作,例如一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。

相同位的两个数字都为1,则为1;若有一个不为1,则为0。

00101

11100

(&;或者and)

----------------

00100

=== 2. or运算 ===

or运算通常用于二进制特定位上的无条件赋值,例如一个数or 1的结果就是把二进制最末位强行变成1。如果需要把二进制最末位变成0,对这个数or 1之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。

相同位只要一个为1即为1。

00101

11100

(|或者or)

----------------

11101

=== 3. xor运算 ===

异或的符号是^。按位异或运算, 对等长二进制模式按位或二进制数的每一位执行逻辑按位异或操作. 操作的结果是如果某位不同则该位为1, 否则该位为0.

xor运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a xor b) xor b = a。xor运算可以用于简单的加密,比如我想对我MM说1314520,但怕别人知道,于是双方约定拿我的生日19880516作为密钥。1314520
xor 19880516 = 20665500,我就把20665500告诉MM。MM再次计算20665500 xor 19880516的值,得到1314520,于是她就明白了我的企图。

相同位不同则为1,相同则为0。

00101

11100

(^或者xor)

----------------

11001

运算结果

x <- x # y

y <- x @ y

x <- x @ y
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: