&按位与,同为真才为真,否则为0.
|按位或,有一个为真即为真,都为0才为0
^按位异或,相同则取0,不同则为1
这些运算值适用于整数(正负皆可)。
整数以补码形式存储。正数原码,反码,补码相同。(首位均为符号位,1为负数,0为正数)
三者转化关系
原码最左边符号位不变,其他位按位取反,得到反码,反码加一得到补码。
利用按位异或,可以不定义临时变量的交换两个变量的值。
#include<stdio.h>
int main()
{
int a = 2;
int b = 3;
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("%d %d", a, b);
return 0;
}
a与b按位异或后得到的值,只要再与a或b中的任意一个运算就能得到另一个。

7616

被折叠的 条评论
为什么被折叠?



