1. 如何快速得出一个整数 n, 判断 n % 4 == 0 是否成立?
b&3 == 0
#经过推算 4 的整数倍的值转化二进制后, 后两位都为0, 则编程中可以使用以下公式
设X对Y求余,Y等于2^N,公式为:X & (2^N - 1)
printf("
----------位移取余--------------
");
printf("[1]: 32&15: %d
", 32 & (2^4 - 1)); //对 16 取余成立
printf("[2]: 32&(~16): %d
", 32 & ~16);
printf("[3]: 16: %d
", 16); // 0001 0000
printf("[4]: ~16: %d
", ~16); // 1110 1111
printf("[5]: 16: %0x
", 16); // 0001 0000
printf("[6]: ~16: %0x
", ~16); // 1110 1111
printf("[7]: 15: %0x
", 15);
printf("[8]: ~15: %0x
", ~15);
printf("----------------------------------
");