椰程信奥

海南科技特长生
添加微信进群聊 微信扫码添加好友
a << 2 | 1 到底先算谁?—— 位运算优先级的一个坑

a << 2 | 1 到底先算谁?—— 位运算优先级的一个坑

2026-09-11

a=3 时 (a << 2 | 1) 输出 13:<< 优先级高于 |,先左移 2 位得 12,再按位或 1 得 13。附位运算优先级顺序、易错写法对比(a<<(2|1)=24、a<<2+1=24)与 CSP-J 考点总结。

n &= (n-1) 到底做了啥?一行代码数出二进制里有几个 1

n &= (n-1) 到底做了啥?一行代码数出二进制里有几个 1

2026-09-11

n &= (n-1) 是 Brian Kernighan 算法,每执行一次清掉最低位的 1,循环次数即二进制中 1 的个数。n=10(1010₂) 输出 2。附模拟过程、原理、复杂度对比、判断 2 的幂与 CSP-J 考点总结。

-5 >> 1 的结果是什么?—— 算术右移与向下取整陷阱

-5 >> 1 的结果是什么?—— 算术右移与向下取整陷阱

2026-09-11

-5 >> 1 的结果是 -3:负数是算术右移(补符号位),等价于向下取整除法 floor(-5/2),而 -5/2 = -2 是向零取整,两者在负奇数时差 1。附补码演示、通用规律与 CSP-J 考点总结。