>>= 演算子 (Visual Basic)

変数またはプロパティの値に算術右シフトを実行し、結果をその変数またはプロパティに戻して代入します。

構文

variableorproperty >>= amount  

指定項目

variableorproperty
必須です。 整数型の変数またはプロパティ (SByteByteShortUShortIntegerUIntegerLongULong)。

amount
必須です。 Integer に拡大されるデータ型の数値式。

Remarks

>>= 演算子の左側の要素には、単純なスカラー変数、プロパティ、または配列の要素を指定できます。 変数またはプロパティを ReadOnly にすることはできません。

>>= 演算子は、まず変数またはプロパティの値に対して算術右シフトを実行します。 次に、この演算子はその演算の結果を変数またはプロパティに戻して代入します。

算術シフトは循環ではありません。つまり、結果の一方の端からシフトされたビットはもう一方の端には再入されません。 算術右シフトでは、右端のビット位置を超えてシフトされたビットは破棄され、左端ビットは左側の空いたビット位置に移されます。 したがって、variableorproperty に負の値がある場合、空いている位置は 1 に設定されます。 variableorproperty が正の場合、またはそのデータ型が符号なしの型の場合、空いている位置は 0 に設定されます。

オーバーロード

>> 演算子は "オーバーロード" できます。つまり、オペランドがクラスまたは構造体の型を持っているときに、クラスまたは構造体はその動作を再定義できます。 >> 演算子をオーバーロードすると、>>= 演算子の動作に影響します。 コードで、>> をオーバーロードするクラスまたは構造体で >>= を使用する場合は、再定義された動作を理解していることを確認してください。 詳細については、「 Operator Procedures」を参照してください。

次の例では、>>= 演算子を使用して、Integer 変数のビット パターンを、指定された桁数だけ右にシフトし、結果をその変数に代入します。

Dim var As Integer = 10
Dim shift As Integer = 2
var >>= shift
' The value of var is now 2 (two bits were lost off the right end).

関連項目