>>= — Operator (Visual Basic)
Wykonuje arytmetyczne przesunięcie w prawo na wartość zmiennej lub właściwości i przypisuje wynik z powrotem do zmiennej lub właściwości.
Składnia
variableorproperty >>= amount
generatora
variableorproperty
Wymagany. Zmienna lub właściwość typu całkowitego (SByte
, Byte
, Short
, UShort
, Integer
, UInteger
, Long
lub ULong
).
amount
Wymagany. Wyrażenie liczbowe typu danych, które rozszerza wartość .Integer
Uwagi
Element po lewej stronie >>=
operatora może być prostą zmienną skalarną, właściwością lub elementem tablicy. Nie można odczytać zmiennej lub właściwości ReadOnly.
Operator >>=
najpierw wykonuje arytmetyczne przesunięcie w prawo na wartość zmiennej lub właściwości. Następnie operator przypisuje wynik tej operacji z powrotem do zmiennej lub właściwości.
Przesunięcia arytmetyczne nie są cykliczne, co oznacza, że bity przesunięte z jednego końca wyniku nie są przywracane na drugim końcu. W arytmetycznym przesunięciu w prawo bity przesunięte poza położenie bitów po prawej stronie są odrzucane, a lewy bit jest propagowany do pozycji bitowych opuszczonych po lewej stronie. Oznacza to, że jeśli variableorproperty
ma wartość ujemną, wolne pozycje są ustawione na jedną. Jeśli variableorproperty
wartość jest dodatnia lub jego typ danych jest typem niepodpisanym, wolne pozycje są ustawione na zero.
Przeciążenie
>> Operator może być przeciążony, co oznacza, że klasa lub struktura może ponownie zdefiniować jego zachowanie, gdy operand ma typ tej klasy lub struktury. Przeciążenie >>
operatora wpływa na zachowanie >>=
operatora. Jeśli kod używa >>=
klasy lub struktury, która przeciąża >>
element , upewnij się, że rozumiesz jego ponownie zdefiniowane zachowanie. Aby uzyskać więcej informacji, zobacz Procedury operatorów.
Przykład
W poniższym przykładzie >>=
użyto operatora , aby przesunąć wzorzec bitowy Integer
zmiennej w prawo o określoną kwotę i przypisać wynik do zmiennej.
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).