1 基本概念
位运算
用于对整型类型(int, char, long等)变量中的某一位(bit),或者若干位进行操作。比如:
- 判断某一位是否为1
- 只改变其中某一位,而保持其他位都不变。
2 按位与“&”
通常用来将某变量中的某些位清0且同时保留其他位不变。
也可以用来获取某变量中的某一位。
3 按位或“|”
按位或运算通常用来将某变量中的某些位置1且保留其他位不变。
4 按位异或“^”
按位异或运算通常用来将某变量中的某些位取反,且保留其他位不变。
异或运算的特点是:
如果a ^ b = c, 那么就有c ^ b = a以及c ^ a = b。(穷举法可证)
此规律可以用来进行最简单的加密和解密。
另外异或运算还能实现不通过临时变量,就能交换两个变量的值:
int a = 5, b = 7;
a = a ^ b;
b = b ^ a;
a = a ^ b;
即实现a,b值交换。穷举法可证。
站在巨人的肩上
【1】北京大学信息技术学院《程序设计实习》