Megosztás a következőn keresztül:


<< Operátor (Visual Basic)

Aritmetikai bal eltolást hajt végre egy bitmintán.

Syntax

result = pattern << amount  

Részek

result
Szükséges. Integrál numerikus érték. A bitminta eltolásának eredménye. Az adattípus megegyezik patterna .

pattern
Szükséges. Integrál numerikus kifejezés. Az eltolandó bitminta. Az adattípusnak integráltípusnak (SByte, , Byte, Short, UShortInteger, UInteger, , Longvagy ULong) kell lennie.

amount
Szükséges. Numerikus kifejezés. A bitminta eltolásához tartozó bitek száma. Az adattípusnak a következőre kell lennie Integer vagy ki kell szélesíteni.Integer

Megjegyzések

Az aritmetikai eltolások nem körkörösek, ami azt jelenti, hogy az eredmény egyik végéről eltolt bitek nem lesznek újra bevezetve a másik végén. Egy aritmetikai bal oldali műszakban a rendszer elveti az eredmény adattípus tartományán túlra tolódott biteket, a jobb oldalon üres bitpozíciók pedig nullára vannak állítva.

Ha meg szeretné akadályozni, hogy az eltolás az eredménynél több bittel legyen megtartva, a Visual Basic az adattípusnak patternmegfelelő méretmaszkkal maszkolja az értéketamount. A bináris ÉS értékeket a rendszer az eltolás összegéhez használja. A maszkok mérete a következő:

Adattípus: pattern Maszk mérete (decimális) Méretmaszk (hexadecimális)
SByte, Byte 7 &H00000007
Short, UShort 15 &H0000000F
Integer, UInteger 31 &H0000001F
Long, ULong 63 &H0000003F

Ha amount nulla, akkor az érték result megegyezik a pattern. Ha amount negatív, akkor a rendszer aláíratlan értékként veszi fel, és a megfelelő méretű maszkkal maszkolja.

Az aritmetikai műszakok soha nem hoznak létre túlcsordulási kivételeket.

Feljegyzés

Az << operátor túlterhelhető, ami azt jelenti, hogy egy osztály vagy struktúra újradefiniálta a viselkedését, ha egy operandus az adott osztály vagy struktúra típusával rendelkezik. Ha a kód ezt az operátort használja egy ilyen osztályban vagy struktúrában, győződjön meg arról, hogy tisztában van az újradefiniált viselkedésével. További információ: Operátori eljárások.

Példa

Az alábbi példa az operátort használja az << integrálértékeken végzett aritmetikai bal műszakok végrehajtására. Az eredmény mindig ugyanazzal az adattípussal rendelkezik, mint az eltolás alatt álló kifejezés.

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

Az előző példa eredményei a következők:

  • result1 192 (0000 0000 1100 0000).

  • result2 3072 (0000 1100 0000 0000).

  • result3 -32768 (1000 0000 0000 0000).

  • result4 384 (0000 0001 1000 0000).

  • result5 0 (15 helyet balra tol).

A műszak összege result4 17 ÉS 15, ami 1.

Lásd még