C#.net按位左移操作。?

时间:2014-09-02 09:13:47

标签: c#

var x = 2;
var y=x+2<<2;
Console.WriteLine(y);
output = 16

我怀疑16是怎么来的。我知道按位左移运算符。完成了什么样的操作。

2 个答案:

答案 0 :(得分:2)

注意运营商优先权。 2 + 2 << 2 2 + (2 << 2)

答案 1 :(得分:1)

与以下相同: -

x + 2 = 4;

4 << 2 ////it means 16 if you perform bitwise on this.

了解让换班操作: -

  

向左移位。运营商左边的数字是   将数字指定的地点数量向右移动。   每次向左移动都会使数字翻倍,因此每次左移   将原始数字乘以2.使用左移快速   乘法或将一组数字组合成一个更大的数字   数。左移只适用于整数或数字   自动转换为byte和char的整数。

所以在你的情况下,我们可以说4的演示文稿是100,它会被2移动,所以它变为10000,这是16的呈现: -

for 4 :- 100
left shift by 2 so,
10000 ////Which is 16