二进制知识巩固和一些常用运算
一)判断一个数是奇数还是偶数
原理:本身和1进行按位与运算,奇数会等于1,偶数会等于0
public static void main(String[] args) {
// 判断一个数是奇数还是偶数
System.out.println(11&1); // 结果为1
System.out.println(10&1); // 结果为0
System.out.println(7&1); // 结果为1
System.out.println(6&1); // 结果为0
// 结论:本身和1进行按位与运算,奇数会等于1,偶数会等于0
}
二)用一条语句判断一个整数是不是2的整数次方
思路:一个整数如果是2的整数次方,那么它的二进制中有且仅有一个位是1,而其他所有位都是0,把该整数减去1后再与自己相与,唯一的1也会变成0
public static void main(String[] args) {
// n&(n-1)
System.out.println(16 & (16-1)); // 0
System.out.println(15 & (15-1)); // 14
System.out.println(14 & (14-1)); // 12
System.out.println(9 & (9-1)); // 8
System.out.println(8 & (8-1)); /