判断一个整数是否为4的倍数?
算法如下:
x&3==0,则是4的倍数。
原理:
先来看一组数字的二进制表示
4 0100
8 1000
12 1100
16 10000
20 10100
由此可见4的倍数的二进制表示的后2为一定为0。
从另外一个角度来看,4的二进制表示是0100,任何4的倍数一定是在此基础上增加n个0100,由此也可得4的倍数的二进制表示的后2为一定为0。
所以之前的算法成立。
如果有更快速有效的办法,请各位朋友赐教。
尊重自己的内心,尊重别人的选择。