C#中&=运算符的作用是什么?新手求通俗讲解
理解C#中的&=运算符
&= 是按位与赋值运算符,说白了就是先把变量和右边的数做「按位与」运算,再把结果存回变量里,等价于 z = z & 599。
先搞懂什么是「按位与」:把两个整数转换成二进制,从右到左每一位对应对比——只有当两个数的某一位都是1时,结果的这一位才是1,只要有一个是0,结果位就是0。
拿你的代码举例子:
- 初始z是4,转换成32位二进制是
00000000 00000000 00000000 00000100 - 599的32位二进制是
00000000 00000000 00000010 01010111 - 逐位对比后,只有第3位(从0开始数)两个数都是1,其他位要么z是0,要么599是0,所以结果还是4,这就是你代码输出4的原因。
再给你个更清楚的例子:如果z是6(二进制110),执行z &= 3(3的二进制是011),按位与后得到010也就是2,所以z最后会变成2。
关键点总结
- &= 就是「先按位与,再赋值」的简写
- 按位与的核心是「同1为1,有0则0」
- 这种操作常用来保留数字的某些二进制位,或者把某些位清零(比如想保留最后3位,就和二进制
111也就是7做按位与)
你的示例代码:
int z = 4; z &= 599; Console.WriteLine(z); // 输出结果为4
内容的提问来源于stack exchange,提问作者Muhammad Hisyamuddin Bin Hamza
相关产品推荐
相关产品推荐

