// 可以通过余数是否为0判断奇数和偶数
1. n % 2 == 0 n 为偶数
/**
*通过位运算判断奇偶性。
*因为当数值存储为二进制时,判断他的是奇数还是偶数只需要看最低位。
*&运算特点是有0既0,当我们用变量n&1时,则一定会把最低位之前所有为变成0。
*这个时候如果变量n最低位是0,则n&1=0,变量n为偶数。
*变量是奇数则最低位是1,n&1=1。
*n&1只有这两种结果
**/
2. n & 1 == 1 n 为奇数 n & 1 == 0 n 为偶数
3. n & 1 !=1 n 为偶数 n & 1 !=0 n 为奇数
4. n & 1 > 0 n为奇数 n & 1 < 1 n为偶数
/**
*int类型是32位二进制,最高位为符号位,我们可以按位左移31位把最低位移到最高位,
*然后根据左移后的数值是否为负数来判断奇偶性。
**/
5. n << 31 < 0 n为奇数
/**
*当变量n向右移到1位时,二进制最低位溢出,
*当它再向左移动1位时,则最低位补0,
*此时如果得到的值和原来的值相等,则n本身最低位为0,n是偶数,否则n是奇数
**/
6. ((n >> 1) << 1 )== n n为偶数 ((n >> 1) << 1 )!= n n为奇数
// 无符号右移
7. ((n >>> 1) << 1) == n n为偶数 ((n >>> 1) << 1) != n n为奇数
判断奇偶方法
于 2022-11-16 20:34:15 首次发布