Share via


<< 演算子 (C# リファレンス)

更新 : 2007 年 11 月

左シフト演算子 (<<) では、2 番目のオペランドで指定されたビット数だけ最初のオペランドが左にシフトされます。2 番目のオペランドの型は int です。

解説

1 番目のオペランドが int または uint (32 ビット値) の場合、シフト数は 2 番目のオペランドの下位 5 ビットで指定されます。

1 番目のオペランドが long または ulong (64 ビット値) の場合、シフト数は 2 番目のオペランドの下位 6 ビットで指定されます。

1 番目のオペランドの上位ビットは破棄され、シフトの結果空になる下位ビットには 0 が入ります。シフト演算では、オーバーフローは発生しません。

<< 演算子はユーザー定義型でオーバーロードできます。詳細については、「operator」を参照してください。オーバーロードでは、最初のオペランドの型はユーザー定義型、2 番目のオペランドの型は int である必要があります。二項演算子をオーバーロードすると、対応する代入演算子がある場合には、この演算子も暗黙でオーバーロードされます。

使用例

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
*/

説明

1 と 33 では下位 5 ビットが同じであるため、i<<1 と i<<33 の結果は同じになります。

参照

概念

C# プログラミング ガイド

参照

C# の演算子

その他の技術情報

C# リファレンス