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

位运算疑问:为何14 & -14等于2、16 & -16等于16?

位运算 x & -x 的结果解析

要搞懂14 & -14 = 2和16 & -16 = 16的原因,核心是理解计算机中负数的二进制存储规则——所有负数都以补码形式存在,补码的计算逻辑是:对正数的二进制取反(得到反码)后加1。

拆解14 & -14的计算过程

  1. 14的8位二进制表示:00001110
  2. 计算-14的补码:
    • 先取14的反码:11110001
    • 反码加1得到补码:11110010
  3. 执行按位与运算:
    00001110
    & 11110010
      --------
      00000010
    
    结果00000010对应的十进制就是2。

拆解16 & -16的计算过程

  1. 16的8位二进制表示:00010000
  2. 计算-16的补码:
    • 先取16的反码:11101111
    • 反码加1得到补码:11110000
  3. 执行按位与运算:
    00010000
    & 11110000
      --------
      00010000
    
    结果00010000对应的十进制就是16。

通用规律总结

x & -x的本质是保留x二进制中最右侧的1,将其余所有位清零:

  • 14的二进制00001110最右侧的1在第1位(从0开始计数),对应数值2^1=2,所以结果为2;
  • 16的二进制00010000只有唯一的1在第4位,对应数值2^4=16,所以结果为16。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:01:21