Sdílet prostřednictvím


>> Operátor (Visual Basic)

Bitový vzorec provádí aritmetickou pravý shift.

result = pattern >> amount

Části

  • result
    Povinné.Nedílnou číselná hodnota.V důsledku posunu bitový vzorec.Typ dat je stejná jako u pattern.

  • pattern
    Povinné.Nedílnou číselný výraz.Bitový vzorec posunutí.The data type must be an integral type (SByte, Byte, Short, UShort, Integer, UInteger, Long, or ULong).

  • amount
    Povinné.Číselný výraz.Počet bitů bitový vzorec posun.Datový typ musí být Integer nebo rozšířit na Integer.

Poznámky

Aritmetické směny nejsou cyklický, což znamená, že bitů posunuly jeden konec výsledek není přivedena na druhém konci.V aritmetické pravý shift bitů posunuty mimo bit krajní polohy se vypustí a bit nejvíce vlevo (symbol) se šíří do pozice bit vacated v levém.To znamená, že pokud pattern má zápornou hodnotu vacated pozice jsou nastaveny na jeden; jinak jsou nastaveny na nulu.

Všimněte si, že datové typy Byte, UShort, UInteger, a ULong nepodepsané, takže žádné znaménkový rozšíření.Pokud pattern je libovolný typ bez znaménka, vacated pozice jsou vždy nastavena na nulu.

Chcete-li zabránit posunu ve více bitů než výsledek může pojmout, Visual Basic masky hodnotu amount s maskou velikost odpovídající typ dat pattern.Binární a tyto hodnoty se používá pro částku shift.Velikost masky jsou následující:

Typ datpattern

Velikost masky (desítkově)

Velikost masky (šestnáctkově)

SByte, Byte

7

& H00000007

Short, UShort

15

& H0000000F

Integer, UInteger

31

& H0000001F

Long, ULong

63

& H0000003F

Pokud amount je nulové hodnoty result je totožná s hodnotou pattern.Pokud amount je záporné, je jako nepodepsané hodnoty a maskou s maskou odpovídající velikosti.

Aritmetické směny nikdy generovat výjimky přetečení.

Přetěžování

>> Operátor může být přetížení, což znamená, že třídy nebo struktury předefinovat své chování při operand je typu třídy nebo struktury.Pokud váš kód používá tento operátor na tyto třídy nebo struktury, přesvědčete se, že pochopit jeho předefinovaná chování.Další informace naleznete v tématu Operátor postupy (Visual Basic).

Příklad

V následujícím příkladu >> operátor aritmetické vpravo směny integrální hodnoty.Výsledek má vždy stejný datový typ. jako výraz jsou posunuty.

Dim pattern As Short = 2560
' The bit pattern is 0000 1010 0000 0000.
Dim result1, result2, result3, result4, result5 As Short
result1 = pattern >> 0
result2 = pattern >> 4
result3 = pattern >> 10
result4 = pattern >> 18
result5 = pattern >> -1

Výsledky předchozího příkladu jsou následující:

  • result1je 2560 (0000 1010 0000 0000).

  • result2je 160 (0000 0000 1010 0000).

  • result32 (0000 0000 0000 0010).

  • result4je 640 (0000 0010 1000 0000).

  • result5je 0 (15 posunuté místa vpravo).

Částka shift pro result4 se vypočítá jako 18 A 15, což se rovná 2.

Následující příklad ukazuje aritmetické směn na zápornou hodnotu.

Dim negPattern As Short = -8192
' The bit pattern is 1110 0000 0000 0000.
Dim negResult1, negResult2 As Short
negResult1 = negPattern >> 4
negResult2 = negPattern >> 13

Výsledky předchozího příkladu jsou následující:

  • negresult1je -512 (1111 1110 0000 0000).

  • negresult2je -1 (rozšířeno znaménkový bit).

Viz také

Referenční dokumentace

Bitové operátory Shift (Visual Basic)

Operátory přiřazení (Visual Basic)

>> = operátor (Visual Basic)

Priority operátorů v jazyce Visual Basic

Operátory uvedené podle funkcí (Visual Basic)

Koncepty

Aritmetické operátory v jazyce Visual Basic