You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

num = 1 << 4 与 num |= 1 << 4 的位运算功能差异问询

位运算疑问解答
  • 先明确1 << 4的结果:二进制下是10000(十进制16),也就是只有从0开始数的第4位是1,其余所有位都是0。
  • num |= 1 << 4等价于num = num | (1 << 4),按二进制位逐一进行或运算:
    • 对num的第4位:是和1做或运算——不管这一位原本是0还是1,结果都会是1(0|1=1,1|1=1),相当于把这一位强制置1,且不会改变原本就是1的状态。
    • 对num的其他所有位:是和0做或运算——或0不会改变原位的值(0|0=0,1|0=1),所以这些位会完全保留原来的数值。
  • 对比你提到的num = 1 << 4:这个操作是直接把num赋值成左移后的结果,会覆盖所有位;而num |= 1 << 4只会精准修改指定位为1,其余位原样保留。

内容的提问来源于stack exchange,提问作者Sp0ge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:39:52