写本篇博客的原因:在两周后2020.10.24需要参加程序设计竞赛,每天自学总结,借此培养并加强自己的算法思维,加油!另外,感谢B站讲授《算法很美》和《数据结构不难》的那个蓝桥教育的up主。
10.10
- 位运算
1.判断奇偶数。X&1,为1,则X为奇数,为0,则X为偶数。
2.获取二进制位是1还是0。比如求一个数的二进制表示的第五位数字,把这个数右移4位得到的结果和1做与运算,为1则为1,为0则为0。
3.在不引进第三个变量的前提下,交换两个数的值。
int a=2,b=1;
a=a^b;
b=a^b;
a=a^b;
System.out.println("a=="+a+",b=="+b);
4.计算一个数的二进制的一的个数。一个很好的思想就是减1和原来的数与运算,然后一直重复下去直到出现0000全是0的时候,看做了多少次,那就有几个1。
5.一条语句判断一个整数是不是2的整数次方。
if(((N-1)&N