回答
在您提供的link,存在使用复合赋值运算符的代码片段:
a+=2; // equivalent to a=a+2
的>>=
运营商也采用类似的方式:
a>>=2; // equivalent to a=a>>2
>>
被称为(右)Shift运算符,并且将源操作数的二进制表示向右移动一定的位数。例如,让我们有这样的代码片段:
int a=12;
cout<<a<<endl;
a>>=2;
cout<<a<<endl;
代码段的输出,当使用C执行++编译器将是:
12
3
到底发生是这样的:a
具有价值为12(以二进制表示)(仅显示最后6位)001100. a>>=2;
将a
中的位向右移2位,并将新值分配给a
,因此新位位置变为000011,即3在十进制中,因此a
获得3的值,并且res ulting输出。
希望这可以澄清混淆。
将答案都是一样的'A = 13,>> = 2'和'A = 12,>> = 2' ?? –
是的,最后两位获得移出一些,因此你得到相同的答案(即3),你能想到的权通过移动'ñ '倍由2^N做源操作数的整数除法,因此,13/4 = 12/4 = 3。 –
>>
是右移操作符。
正如您所提到>>=
是一个复合赋值运算符。复合赋值使用运算符修改变量,并将新值赋给自己。
a >>= b
相当于a = a >> b
即,a右移b次并分配回a。
例如,
int a = 8, b = 2;
a >>= b; // right shift by 2 i.e. divide by 2 x b times.
cout << a; // prints value of 2
- 1. 数据( - >)a b是什么意思?
- 2. `a> b`是什么意思?
- 3. memset(foo-> a + foo-> b,0,10)是什么意思?
- 4. b = a-> b是什么意思在一类列表中?
- 5. 这是什么意思?公式一=> A - > [A] - >布尔
- 6. >> =是什么意思?
- 7. 为什么fold会预期(a - > b - > a)而不是(b - > a - > a)?
- 8. <a href="#">Click here</a>是什么意思?
- 9. 什么是ocaml类型'a。 'a - >'是什么意思?
- 10. {< >}是什么意思?
- 11. “outer =>”是什么意思?
- 12. `^^^`和`〜>`是什么意思?
- 13. >> = purescript中的意思是什么?
- 14. “ - >”是什么意思?
- 15. `size * = b - a`是什么意思?
- 16. 操作c = a +++ b是什么意思?
- 17. `a + = b + = c`是什么意思?
- 18. “特质A <:B”是什么意思?
- 19. format(a,str(b))是什么意思?
- 20. Groovy,什么意思 - >意思是
- 21. 什么`... |类型声明中的b - > c是什么意思?
- 22. “ - >”是什么意思?
- 23. <>是什么意思?
- 24. <>是什么意思?
- 25. “=>”是什么意思?
- 26. '=>'是什么意思?
- 27. `()=> Unit`是什么意思?
- 28. > var是什么意思?
- 29. “=>”是什么意思?
- 30. <+>是什么意思?
移向左b乘以。等于整数除以2 ** b。 –
它的'a = a >> b'即移位'a'右'b'次 –
不能得到它。请用示例 –