位运算
来源:互联网 发布:网络弊大于利四辩总结 编辑:程序博客网 时间:2024/06/06 02:10
记录一些位运算的小技巧:
1.&(按位与)判断奇偶
num & 1 == 1
为true即奇数
2.^(按位异或)用于两数互换
数学基础:
a ^ a == 0
a ^ 0 == a
两个数a,b交换:
a = a ^ b;
b = a ^ b;//a ^ b ^ b == a
a = a ^ b;// a ^ b ^ a == b
3.求子集
思路就是以二进制编码的方法来穷举,如打印{a,b}的子集,共
2^2=4个,可以分别编码为00,01,10,11,有“1”就输出。
00即表示空集。
public static void main(String[] args) {List<String> list = new ArrayList<String>();list.add("A");list.add("B");int len = 1 << list.size();for (int i = 0; i < len; i++) {int num = i;for (int j = 0; j < list.size(); j++) {if ((num & 1) == 1) {System.out.print(list.get(j) + " ");}num >>= 1;}System.out.println();}}
//持续更新
0 0
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- IO流-File类-文件及目录的创建和删除
- 11g new feature 之 SPM
- ASP.NET 判断字符创是否为空
- Hadoop入门科普文
- CentOs安装redis
- 位运算
- Android Activity生命周期的几个问题
- linux应用程序管理
- oracle中定期执行存储过程
- fftw_plan_dft_2d重复优化
- linux进程间通讯,Android系统各种进程间通信机制
- 关于json以及json字符串和Java对象的转换
- WebMagic中使用POST请求并传递参数
- Nutch2.2.1+Eclipse+Mysql