Der Linksschiebeoperator (<<) verschiebt seinen ersten Operanden um die durch seinen zweiten Operanden angegebene Bitanzahl nach links. Der Typ des zweiten Operanden muss int sein.
Wenn der erste Operand int oder uint (32 Bit) ist, wird die Anzahl der Bitverschiebungen durch die fünf niedrigstwertigen Bits des zweiten Operanden angegeben.
Wenn der erste Operand long oder ulong (64 Bit) ist, wird die Anzahl der Bitverschiebungen durch die sechs niedrigstwertigen Bits des zweiten Operanden angegeben.
Die höchstwertigen Bits des ersten Operanden werden verworfen, und die niedrigstwertigen leeren Bits werden mit Nullen aufgefüllt. Schiebeoperationen lösen nie Überläufe aus.
Benutzerdefinierte Typen können den Operator << überladen (siehe Operator). Als Typ des ersten Operanden muss der benutzerdefinierte Typ verwendet werden, und als Typ des zweiten Operanden muss int verwendet werden. Beim Überladen eines binären Operators wird implizit auch der zugehörige Zuweisungsoperator, falls vorhanden, überladen.
// cs_operator_left_shift.cs using System; class MainClass { 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); } }
0x2 0x2 0x200000000
Beachten Sie, dass i<<1 und i<<33 das gleiche Resultat ergeben, weil 1 und 33 in den fünf niedrigstwertigen Bits übereinstimmen.