変数またはプロパティの値に対して算術右シフトを実行し、結果を変数またはプロパティに割り当てます。
構文
variableorproperty >>= amount
部品
variableorproperty
必須。 整数型 (SByte
、 Byte
、 Short
、 UShort
、 Integer
、 UInteger
、 Long
、または ULong
) の変数またはプロパティ。
amount
必須。
Integer
に拡大するデータ型の数値式。
注釈
>>=
演算子の左側の要素には、単純なスカラー変数、プロパティ、または配列の要素を指定できます。 変数またはプロパティを ReadOnly にすることはできません。
>>=
演算子は、最初に変数またはプロパティの値に対して算術右シフトを実行します。 その後、演算子は、その操作の結果を変数またはプロパティに割り当てます。
算術シフトは循環ではなく、結果の一方の端からシフトされたビットがもう一方の端で再導入されないことを意味します。 算術右シフトでは、右端のビット位置を超えてシフトされたビットは破棄され、左端のビットは左に空いたビット位置に伝達されます。 つまり、 variableorproperty
に負の値がある場合、空の位置は 1 に設定されます。
variableorproperty
が正の場合、またはそのデータ型が符号なし型の場合、空の位置は 0 に設定されます。
オーバーロード
>>演算子はオーバーロードできます。つまり、オペランドがそのクラスまたは構造体の型を持つ場合、クラスまたは構造体はその動作を再定義できます。
>>
演算子をオーバーロードすると、>>=
演算子の動作に影響します。 コードで>>=
オーバーロードするクラスまたは構造体に対して>>
を使用する場合は、再定義された動作を理解していることを確認してください。 詳細については、「 演算子プロシージャ」を参照してください。
例
次の例では、 >>=
演算子を使用して、 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).
こちらも参照ください
.NET