什么是>>="c#中的运算符均值
本文关键字:运算符 quot 什么 | 更新日期: 2023-09-27 18:17:21
我刚刚看到下面的代码,我可以看到num
每循环减少一半,但我不能真正弄清楚这是什么意思。
int n1 = n;
for (int num = 16; num != 0; num >>= 1)
{
if ((n1 & num) != 0)
{
dOSomeStuff();
}
}
谢谢。
右移操作符:
num >>= 1
与num = num >> 1
相同
http://msdn.microsoft.com/en-US/library/23as4533 (v = vs.80) . aspx
表示"右移并赋值",与+=
表示"添加并赋值",-=
表示"减去并赋值"等相同。
int i = 123; // i = 123 binary 01111011
i >>= 1; // i = 61 binary 00111101
i >>= 1; // i = 30 binary 00011110
i >>= 1; // i = 15 binary 00001111
这是右移位赋值操作符
http://msdn.microsoft.com/en-US/library/23as4533 (v = vs.80) . aspx
意思是右移1,然后赋值,16是10000二进制数,每次调用这段代码,这个数都会除以2。10000(16)变成01000 (8)
是将值向右进行位移动的操作符。在代码中,num将具有以下序列:
16//10000二进制
8//01000
4//00100
//00010
//00001