偶数判断
之前经常的做法就是看是否能整除2
function isEven(num) { return num % 2 == 0; }
今天学到了一个新的方法,根据与运算来计算
var isEven = function(num) { return !(num & 1); };
刚开始看的时候没懂,&怎么就能判断奇偶呢,仔细分析:
1&1=1
2的二进制是10 => 10&01=0
3的二进制是11 => 11&01=1
4的二进制是100 => 100&001=0
偶数二进制最后一位都是0,1的最后一位是1,其它位都是0,所以偶数和1的与运算结果都是0
注意:
参加运算的两个数据,按二进制位进行“与”运算。
运算规则:0&0=0;0&1=0;1&0=0;1&1=1;
即:两位同时为“1”,结果才为“1”,否则为0