C#.net按位左移操作。
问题描述:
var x = 2;
var y=x+2<<2;
Console.WriteLine(y);
output = 16
我的疑问是,16是如何来的。我知道按位左移操作符。什么样的操作完成。C#.net按位左移操作。
答
注意运营商的优先级。 2 + 2 << 2
是不是2 + (2 << 2)
。
答
其下同 -
x + 2 = 4;
4 << 2 ////it means 16 if you perform bitwise on this.
应将描述来了解让换档操作: -
位移位到左侧。运营商左侧的号码是 将号码指定的地点数量向右移。 向左移动的次数会使数字加倍,因此每个左移 会将原始数字乘以2.左移使用快速 乘法或将一组数字打包在一起放入一个较大的 数字。左移仅适用于整数或数字, 自动转换为整数,如字节和字符。
所以你的情况可以说呈现4是100
,它会通过2
偏移,从而成为10000
这是16
演示: -
for 4 :- 100
left shift by 2 so,
10000 ////Which is 16
这一点,你挣扎?其基本上(2 + 2)* 4 – Sayse 2014-09-02 09:17:51