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

Golang中&^运算符工作原理疑问:5 &^ 11 = 4的计算逻辑解析

理解Go语言中的&^(按位清零)运算符

嘿,这个&^运算符确实是Go里比较小众的位运算符,我来给你掰扯清楚它的逻辑!

首先,&^在Go里被称为按位清零运算符(也常叫按位与非),它的核心规则非常直白:

  • 对每一位二进制位进行判断:如果右侧操作数的对应位是1,那么结果的该位直接设为0(清零)
  • 如果右侧操作数的对应位是0,结果的该位就和左侧操作数的对应位保持一致

咱们拿你给出的例子一步步拆解:

5 = 0101,11 = 1011,结果4 = 0100

逐位对比分析:

二进制位位置(从右往左数,从0开始)5的对应位11的对应位应用规则后的结果位
0(最右边)110(因为右侧是1,清零)
1010(右侧是1,清零)
2101(右侧是0,保留左侧值)
3010(右侧是1,清零)

把结果位从高位到低位拼起来就是0100,转换成十进制就是4,完全符合你看到的结果!

再给你举个简单例子巩固一下:比如计算6 &^ 3

  • 6的二进制是0110,3的二进制是0011
  • 逐位处理:第0位右1→0,第1位右1→0,第2位右0→1,第3位右0→0
  • 最终结果是0100,也就是十进制的4

本质上,这个运算符就是帮你快速把左侧数中,右侧数为1的那些位全部清零,其他位保持不变,在一些底层位操作场景里特别有用~

内容的提问来源于stack exchange,提问作者yu yang Jian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:24:51