>> 演算子 (C# リファレンス)
右シフト演算子 (>>) では、2 番目のオペランドで指定されたビット数だけ最初のオペランドが右にシフトされます。
解説
最初のオペランドが int または uint (32 ビット値) の場合、シフト数は 2 番目のオペランドの下位 5 ビット (2 番目のオペランド & 0x1f) で指定されます。
最初のオペランドが long または ulong (64 ビット値) の場合、シフト数は 2 番目のオペランドの下位 6 ビット (2 番目のオペランド & 0x3f) で指定されます。
最初のオペランドが int または long の場合、右シフトは算術シフトです。つまり、シフトの結果空になる上位ビットに符号ビットが設定されます。 最初のオペランドが uint 型または ulong 型の場合、右シフトは論理シフトです。つまり、上位ビットには 0 が入ります。
>> 演算子はユーザー定義型でオーバーロードできます。オーバーロードでは、最初のオペランドの型はユーザー定義型、2 番目のオペランドの型は int である必要があります。 詳細については、「operator (C# リファレンス)」を参照してください。 二項演算子をオーバーロードすると、対応する代入演算子がある場合には、この演算子も暗黙でオーバーロードされます。
使用例
class RightShift
{
static void Main()
{
int i = -1000;
Console.WriteLine(i >> 3);
}
}
/*
Output:
-125
*/