什么是>>="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();
    }
}

谢谢。

什么是>>="c#中的运算符均值

右移操作符:

num >>= 1num = 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