Sdílet prostřednictvím


Aritmetické operátory v jazyce Visual Basic

Aritmetické operátory slouží k provádění mnoha známých aritmetické operace, které se týkají výpočtu číselné hodnoty představované literály, proměnné, ostatní výrazy, funkce a vlastnosti volání a konstanty.Také zařazují aritmetické operátory jsou operátory bit shift, které působí na úrovni jednotlivých bitů operandy a posunutí jejich vzorky bit doleva nebo doprava.

Aritmetické operace

Můžete přidat dvě hodnoty ve výrazu spolu s + – operátor (Visual Basic), nebo odečíst jeden od druhého se - – operátor (Visual Basic), jak ukazuje následující příklad.

Dim x As Integer
x = 67 + 34
x = 32 - 12

Negace používá také - – operátor (Visual Basic), ale pouze jediný operand, jako v následujícím příkladu ukazuje.

Dim x As Integer = 65
Dim y As Integer
y = -x

Použití násobení a dělení * – operátor (Visual Basic) a / – operátor (Visual Basic), resp. jako příklad.

Dim y As Double
y = 45 * 55.23
y = 32 / 23

Umocnění používá ^ – operátor (Visual Basic), jak ukazuje následující příklad.

Dim z As Double
z = 23 ^ 3
' The preceding statement sets z to 12167 (the cube of 23).

Celočíselné dělení se provádí za použití \ – operátor (Visual Basic).Celočíselné dělení vrátí podíl, je číslo, které představuje počet dělitel lze rozdělit dividendy bez ohledu na jakékoli zbývající.Both the divisor and the dividend must be integral types (SByte, Byte, Short, UShort, Integer, UInteger, Long, and ULong) for this operator.Všechny ostatní typy musí nejprve převést na integrálního typu.Následující příklad ukazuje celočíselné dělení.

Dim k As Integer
k = 23 \ 5
' The preceding statement sets k to 4.

MODULUS aritmetické se provádí pomocí Mod – operátor (Visual Basic).Tento operátor vrací zbytek po rozdělení dividend dělitel integrální počet opakování.Pokud dělitel a dividendy typů, vrácená hodnota je nedílnou.Pokud dělitel a dividendy typy s plovoucí desetinnou čárkou, je také vrácená hodnota s plovoucí desetinnou čárkou.Příklad tohoto chování.

Dim x As Integer = 100
Dim y As Integer = 6
Dim z As Integer
z = x Mod y
' The preceding statement sets z to 4.
Dim a As Double = 100.3
Dim b As Double = 4.13
Dim c As Double
c = a Mod b
' The preceding statement sets c to 1.18.

Pokus o dělení nulou

Dělení nulou má jiné výsledky v závislosti na se datové typy.In integral divisions (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong), the .NET Framework throws a DivideByZeroException exception.Rozdělení operací na Decimal nebo Single typ dat .NET Framework také vyvolá DivideByZeroException výjimku.

V pohyblivé čárce mezistěnách zahrnující Double typ dat žádná výjimka a výsledkem je člen třídy představující NaN, PositiveInfinity, nebo NegativeInfinityv závislosti na dělenec.Následující tabulka shrnuje výsledky různých pokouší rozdělit Double hodnotu nula.

Typ dat dividendy

Typ dat dělitele

Hodnota dividendy

Výsledek

Double

Double

0

NaN(není matematicky definované číslo)

Double

Double

> 0

PositiveInfinity

Double

Double

< 0

NegativeInfinity

Když můžete zachytit DivideByZeroException výjimku, můžete jeho členové vám jej.Například Message vlastnost obsahuje text zprávy pro výjimku.Další informace naleznete v tématu Try...Catch....Finally – příkaz (Visual Basic).

Bit Shift operací

Bit shift operace provádí aritmetickou shift bitový vzorec.Vzorek je obsažen v operand vlevo, zatímco operand napravo určuje počet pozic posun vzorek.Vzorek můžete posunout doprava s >> – operátor (Visual Basic) s vlevo nebo << – operátor (Visual Basic).

The data type of the pattern operand must be SByte, Byte, Short, UShort, Integer, UInteger, Long, or ULong.Datový typ operandu shift částka musí být Integer nebo musí rozšířit na Integer.

Aritmetické směny nejsou cyklický, což znamená, že bitů posunuly jeden konec výsledek není přivedena na druhém konci.Pozice bit uprázdnili směny jsou nastaveny takto:

  • 0 pro aritmetické levý shift

  • 0 pro aritmetické pravý shift kladná čísla.

  • aritmetické pravý shift nepodepsaná data typu 0 (Byte, UShort, UInteger, ULong)

  • 1 pro aritmetické pravý shift záporného čísla (SByte, Short, Integer, nebo Long)

V následujícím příkladu se posune Integer hodnoty vlevo a vpravo.

Dim lResult, rResult As Integer 
Dim pattern As Integer = 12
' The low-order bits of pattern are 0000 1100.
lResult = pattern << 3
' A left shift of 3 bits produces a value of 96.
rResult = pattern >> 2
' A right shift of 2 bits produces value of 3.

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

Bitové operace

Vedle právě logické operátory, Not, Or, And, a Xor také provádět bitového aritmetický při použití na číselné hodnoty.Další informace naleznete v tématu "Bitové operace" v Logické a bitové operátory v jazyce Visual Basic.

Typ bezpečnosti

Operandy by zpravidla stejného typu.Například v případě přídavku s Integer proměnné, měli byste jej přidat do jiného Integer proměnné a výsledek má přiřadit proměnné typu Integer i.

Způsob zajištění dobré bezpečné typ kódování praxe je použití Option Strict – příkaz.Nastavíte-li Option Strict On, Visual Basic automaticky provádí typu bezpečné převody.Například pokud se pokusíte přidat Integer proměnné na Double proměnné a přiřadit hodnotu Double proměnné, operace pokračuje normálně, protože Integer hodnotu lze převést na Double bez ztráty dat..Typ nebezpečných převodů na druhé straně způsobit chybu kompilátoru s Option Strict On.Například pokud se pokusíte přidat Integer proměnné na Double proměnné a přiřadit hodnoty Integer proměnné, chyba kompilátoru výsledky, protože Double proměnné nelze implicitně převést na typ Integer.

Nastavíte-li Option Strict Off, ale Visual Basic umožňuje implicitní převody zužujícího probíhat, přestože může způsobit neočekávané ztrátě dat nebo přesnosti.Z tohoto důvodu doporučujeme použít Option Strict On při psaní kódu pro výrobu.Další informace naleznete v tématu Rozšíření a zúžení převodů (Visual Basic).

Viz také

Referenční dokumentace

Aritmetické operátory (Visual Basic)

Operátory bitového posunutí (Visual Basic)

Koncepty

Operátory porovnání v jazyce Visual Basic

Operátory řetězení v jazyce Visual Basic

Logické a bitové operátory v jazyce Visual Basic

Účinná kombinace operátorů (Visual Basic)