>>= 演算子 (Visual Basic)
更新 : 2007 年 11 月
変数またはプロパティの値に右シフトの算術演算を実行し、その結果を元の変数またはプロパティに代入します。
variableorproperty >>= amount
指定項目
variableorproperty
必ず指定します。変数またはプロパティは、整数型 (SByte、Byte、Short、UShort、Integer、UInteger、Long、または ULong) であることが必要です。amount
必ず指定します。整数型 (Integer) に拡大変換されるデータ型の数値表現です。
解説
>>= 演算子の左側には、スカラ変数、プロパティ、配列の要素なども指定できます。変数またはプロパティを ReadOnly (Visual Basic) にすることはできません。>>= 演算子は、右側の値を左側の変数またはプロパティに代入します。
数値のシフトは、循環的には行われません。つまり、一方の端からはみ出したビットが、もう一方の端に補われることはありません。右シフトの算術演算では、右端のビット位置を超えてシフトされるビットは破棄され、左端のビットは左側に空いたビット位置に移されます。これは、variableorproperty が負の値である場合、空いた位置に 1 が設定されることを示します。variableorproperty が正の値である場合、またはデータ型が unsigned 型である場合、空いた位置にはゼロが設定されます。
オーバーロード
>> 演算子 (Visual Basic) はオーバーロードできます。つまり、オペランドがクラスや構造体を型として持つ場合に、演算子の動作をそのクラスや構造体で再定義できるという意味です。>> 演算子のオーバーロードは、>>= 演算子の動作に影響を与えます。コード内で、>> をオーバーロードするクラスや構造体で >>= が使用されている場合は、再定義された後の動作を必ず理解するようにしてください。詳細については、「演算子プロシージャ」を参照してください。
使用例
>>= 演算子を使って、整数型 (Integer) 変数のビット パターンを、指定されたビット数だけ右にシフトし、結果を元の変数に代入する例を次に示します。
Dim var As Integer = 10
Dim shift As Integer = 2
var >>= shift
' The value of var is now 2 (one bit was lost off the right end).