Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Aritmetikai bal eltolást hajt végre egy bitmintán.
Szemantika
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űveletek soha nem okoznak túlcsordulási kivételeket.
Megjegyzé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:
result1192 (0000 0000 1100 0000).result23072 (0000 1100 0000 0000).result3-32768 (1000 0000 0000 0000).result4384 (0000 0001 1000 0000).result50 (15 helyet balra tol).
A műszak összege result4 17 ÉS 15, ami 1.