更新:2007 年 11 月

左移运算符 (<<) 将第一个操作数向左移动第二个操作数指定的位数。第二个操作数的类型必须是 int

备注

如果第一个操作数是 intuint(32 位数),则移位数由第二个操作数的低 5 位给出。

如果第一个操作数是 longulong(64 位数),则移位数由第二个操作数的低 6 位给出。

第一个操作数的高序位被放弃,低序空位用 0 填充。移位操作从不导致溢出。

用户定义的类型可重载 << 运算符(请参见 operator);第一个操作数的类型必须为用户定义的类型,第二个操作数的类型必须为 <<。重载二元运算符时,也会隐式重载相应的赋值运算符(如果有)。

示例

C# 复制代码
class MainClass11
{
    static void Main()
    {
        int i = 1;
        long lg = 1;
        Console.WriteLine("0x{0:x}", i << 1);
        Console.WriteLine("0x{0:x}", i << 33);
        Console.WriteLine("0x{0:x}", lg << 33);
    }
}
/*
Output:
0x2
0x2
0x200000000
*/

注释

请注意,i<<1i<<33 给出相同的结果,因为 1 和 33 的低序 5 个位相同。

请参见

概念

参考

其他资源