<< 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 pattern
a .
pattern
Szükséges. Integrál numerikus kifejezés. Az eltolandó bitminta. Az adattípusnak integráltípusnak (SByte
, , Byte
, Short
, UShort
Integer
, UInteger
, , Long
vagy 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 pattern
megfelelő 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.