<< — Operator (Visual Basic)

Wykonuje arytmetyczne, lewy shift wzorzec bitowy.

result = pattern << amount

Części

  • result
    Wymagane.Integralną wartość liczbową.Wynik przesuwanie wzorzec bitowy.Typ danych jest taka sama, jak w przypadku pattern.

  • pattern
    Wymagane.Integralną wyrażenia liczbowego.Wzorzec bitowy, tak aby pasowała.The data type must be an integral type (SByte, Byte, Short, UShort, Integer, UInteger, Long, or ULong).

  • amount
    Wymagane.Wyrażenia liczbowego.Liczba bitów przesunięcie wzorca bitów.Typ danych musi być Integer lub rozszerzyć do Integer.

Uwagi

Arytmetyczne przesunięcia nie są cykliczne, co oznacza bitów, poza jednym końcu wynik nie są ponownie wprowadzone na drugim końcu.W arytmetyczną lewy shift bitów, przesunięte poza zakres typu danych są odrzucane i pozycjach naboru po prawej stronie są ustawione na zero.

Aby zapobiec shift przez bity więcej niż może pomieścić wynik, Visual Basic maski wartość amount z maską rozmiar odpowiadający typowi danych z pattern.Binarne i z tych wartości jest używany do kwoty shift.Rozmiar maski są w następujący sposób:

Typ danychpattern

Rozmiar maski (dziesiętny)

Rozmiar maski (szesnastkowo)

SByte, Byte

7

& H00000007

Short, UShort

15

& H0000000F

Integer, UInteger

31

& H0000001F

Long, ULong

63

& H0000003F

Jeśli amount jest zero, wartość result jest taka sama, jak wartość pattern.Jeśli amount jest negatywny, jest jako wartość bez znaku i maskowane przez maskę odpowiedni rozmiar.

Arytmetyczne w systemie zmianowym nigdy wygenerować wyjątków przepełnienia.

[!UWAGA]

<< Operator może być nadmiernie, co oznacza, że klasy lub struktury można ponownie zdefiniować jego zachowanie podczas operand ma typ tej klasy lub struktury.Jeśli użyty kod używa tego operatora na klasy lub struktury, należy dokładnie zrozumieć jej zachowanie przedefiniować.Aby uzyskać więcej informacji, zobacz Procedury operatorów (Visual Basic).

Przykład

W poniższym przykładzie użyto << operatora do wykonywania opuścił przesunięcia na integralną wartości arytmetycznej.Wynik ma zawsze dane tego samego typu jak wyrażenie jest przesuwane.

Dim pattern As Short = 192
' The bit pattern is 0000 0000 1100 0000. 
Dim result1, result2, result3, result4, result5 As Short
result1 = pattern << 0
result2 = pattern << 4
result3 = pattern << 9
result4 = pattern << 17
result5 = pattern << -1

Dostępne są następujące wyniki poprzedniego przykładu:

  • result1jest 192 (0000 do 0000 1100 0000).

  • result2jest 3072 (0000 1100 0000 do 0000).

  • result3jest z przedziału od –32 768 (1000 0000 0000 do 0000).

  • result4jest 384 (0000, 0001 1000 0000).

  • result5jest równa 0 (przesuniętych 15 miejsc po lewej stronie).

Kwota shift dla result4 jest obliczana jako 17 15 I, jest równe 1.

Zobacz też

Informacje

Bit Shift — Operatory (Visual Basic)

Operatory przypisania (Visual Basic)

<<= — Operator (Visual Basic)

Kolejność wykonywania działań (Visual Basic)

Operatory według funkcji (Visual Basic)

Koncepcje

Operatory arytmetyczne w Visual Basic