只有当除数是 2 的幂次方(如 2、4、8、16...)时,取模运算才可以转换为位运算。
	int b = 19;
	int a1 = b % 16;     // 传统取模运算
	int a2 = b & 15;     // 位运算替代取模
	
	printf("b = %d\n", b);
	printf("b %% 8 = %d\n", a1);  // 输出: 3
	printf("b & 7  = %d\n", a2);  // 输出: 3
	
	return 0;为什么?
-  数学原理: 
 当除数n是 2 的幂次方(如n = 8)时,b % n的结果仅由b的低log₂(n)位决定。例如:- b % 8只需看- b的低 3 位(因为- 8 = 2³)。
- b % 16只需看- b的低 4 位(因为- 16 = 2⁴)。
 此时, b % n等价于b & (n-1),因为n-1的二进制恰好是低log₂(n)位全为 1,其余位为 0(如7的二进制是0111,15的二进制是1111)。
-   



















