gpt4 book ai didi

c# - X >>= N 做什么?

转载 作者:行者123 更新时间:2023-11-30 13:55:27 24 4
gpt4 key购买 nike

我有这个代码:

tmp = (uint)len;
writer.CurPosition = value + 1;
do
{
value++;
writer.dest.WriteByte((byte)((tmp & 0x7F) | 0x80));
} while ((tmp >>= 7) != 0);

但我不明白 tmp >>= 7 是如何工作的?

最佳答案

>>称为右位移位运算符。而且由于还有额外的 =>> 之后(形成一个复合赋值运算符>>=),因此赋值赋值者变量(tmp)将共享

或者换句话说,使用给定的例子,

tmp >>= 7; //actually you use tmp both to assign and to be assigned

相当于

tmp = tmp >> 7; //actually you use tmp both to assign and to be assigned

关于位移位操作,我认为最好用一个例子来说明。

假设 tmp 的值是0xFF00 (二进制表示的1111 1111 0000 0000),那么如果我们在按位级别看,>>=的操作看起来像这样

1111 1111 0000 0000 //old tmp
------------------- >> 7
0000 0001 1111 1110 //Shifted by 7 -> this is going to be the new value for tmp

因此,tmp 的新值将是 0x01FE (即 0000 0001 1111 1110 )

关于c# - X >>= N 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34632583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com