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

请求详解C#中&=赋值运算符的位运算步骤及数学逻辑

C# 按位与运算代码详解

先看你给出的代码:

using System;

namespace MyApplication
{
  class Program
  {
    static void Main(string[] args)
    {
      int x = 5;
      x &= 3;
      Console.WriteLine(x);  
     }
  }
}

核心运算解析

代码里的x &= 3是按位与复合赋值运算符,等价于x = x & 3,所有位运算都是在二进制层面逐位操作的,具体步骤如下:

  1. 转换为二进制

    • 十进制的5,二进制表示(取8位有效位,高位补0):00000101
    • 十进制的3,二进制表示:00000011
  2. 逐位执行按位与操作
    按位与的规则是:对应二进制位都为1时,结果位为1;只要有一个为0,结果位为0。逐位对比计算:

    • 第0位(最右侧):1 & 1 = 1
    • 第1位:0 & 1 = 0
    • 第2位:1 & 0 = 0
    • 更高位都是0 & 0 = 0
  3. 转换回十进制
    计算后的二进制结果是00000001,对应的十进制就是1,这就是控制台输出的结果。

背后的数学逻辑

按位与运算a & b的本质是保留a中与b二进制位为1的位置对应的位,其余位清零。
这里3的二进制是11(最后两位为1),所以5 & 3其实是取5的最后两位二进制值。5的最后两位二进制是01,对应十进制1,所以结果为1。这种操作常用来提取数值的低n位(n是b的二进制中连续1的位数,比如3是2位,对应提取低2位)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:15:38