Udostępnij za pośrednictwem


Operatory arytmetyczne w Visual Basic

Operatory arytmetyczne służą do wykonywania wielu znanych operacje arytmetyczne, które obejmują obliczenia wartości liczbowych, reprezentowane przez literały, zmienne, innych wyrażeń, funkcji i właściwości połączeń i stałych.Także sklasyfikowane za pomocą operatorów arytmetycznych są operatory przesunięcia bitowego, które działają na poziomie poszczególnych bitów operandy i shift ich wzorców bit w lewo lub prawo.

Operacje arytmetyczne

Można dodać dwie wartości w wyrażeniu wraz z + — Operator (Visual Basic), lub odjąć jeden od drugiego z - — Operator (Visual Basic), jak w poniższym przykładzie zademonstrowano.

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

Negacja używa również - — Operator (Visual Basic), ale z jednym operandem, jak w poniższym przykładzie pokazano.

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

Mnożenie i dzielenie, użyj * Operator (Visual Basic) i / — Operator (Visual Basic), odpowiednio, jak w poniższym przykładzie zademonstrowano.

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

Potęgowanie używa ^ — Operator (Visual Basic), jak w poniższym przykładzie zademonstrowano.

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

Dzielenie jest przeprowadzane przy użyciu \ — Operator (Visual Basic).Dzielenie zwraca wartość ilorazu, czyli liczba całkowita, która reprezentuje liczbę razy dzielnik można podzielić na dywidend, bez względu na wszelkie pozostałe.Both the divisor and the dividend must be integral types (SByte, Byte, Short, UShort, Integer, UInteger, Long, and ULong) for this operator.Wszystkie inne typy musi zostać przekonwertowana na typ integralny najpierw.W poniższym przykładzie zademonstrowano dzielenia.

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

Moduł arytmetycznych jest wykonywane przy użyciu Mod — Operator (Visual Basic).Ten operator zwraca resztę po podzieleniu dzielnik do dywidendy integralną liczbę razy.Jeżeli dzielnik i dywidendy są typy zintegrowane, zwrócona wartość jest integralną.Dzielnik i dywidendy są zmiennoprzecinkowych typów, zwrócona wartość jest również zmiennoprzecinkowych.Poniższy przykład ilustruje to zachowanie.

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.

Próba dzielenia przez Zero

Dzielenie przez zero ma różne wyniki w zależności od zaangażowanych typów danych.In integral divisions (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong), the .NET Framework throws a DivideByZeroException exception.W operacji dzielenia na Decimal lub Single typ danych, .NET Framework również wyrzuca DivideByZeroException wyjątku.

W rejonach zmiennoprzecinkowych, obejmujące Double typ danych nie jest wyjątek i wynik, jest członkiem klasy reprezentujące NaN, PositiveInfinity, lub NegativeInfinity, w zależności od dywidendy.W poniższej tabeli zestawiono różne wyniki próby dzielenia Double wartość przez wartość zero.

Typ danych dywidendy

Typ danych dzielnik

Wartość dywidendy

Wynik

Double

Double

0

NaN(nie matematycznie zdefiniowanych numer)

Double

Double

> 0

PositiveInfinity

Double

Double

< 0

NegativeInfinity

Podczas połowu DivideByZeroException wyjątek, można użyć swoich członków, ułatwiające je obsłużyć.Na przykład Message właściwość zawiera tekst komunikatu dla wyjątku.Aby uzyskać więcej informacji, zobacz Try...Catch...Finally — Instrukcja (Visual Basic).

Operacje bitowe Shift

Operacja shift bitowe wykonuje arytmetyczne shift wzorzec bitowy.Wzór jest zawarty w operand po lewej stronie, podczas gdy operand po prawej stronie określa liczbę stanowisk do przesunięcia wzoru.Przenieś wzorzec prawo z >> — Operator (Visual Basic) lub w lewo z << — Operator (Visual Basic).

The data type of the pattern operand must be SByte, Byte, Short, UShort, Integer, UInteger, Long, or ULong.Typ danych argument shift kwota musi być Integer lub należy rozszerzyć do Integer.

Arytmetyczne przesunięcia nie są cykliczne, co oznacza bitów, poza jednym końcu wynik nie są ponownie wprowadzone na drugim końcu.Pozycjach naboru przez shift są ustawione w następujący sposób:

  • 0 dla arytmetyczne, lewy shift

  • 0 dla arytmetyczne prawy shift liczba dodatnia

  • 0 dla arytmetyczne, prawy shift typu danych bez znaku (Byte, UShort, UInteger, ULong)

  • 1 dla arytmetyczne, prawy shift z liczby ujemnej (SByte, Short, Integer, lub Long)

Poniższy przykład przesuwa Integer wartość w lewo i w prawo.

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.

Arytmetyczne w systemie zmianowym nigdy wygenerować wyjątków przepełnienia.

Operacje bitowe

Oprócz operatorów logicznych, Not, Or, And, i Xor również wykonywać operatory arytmetyczne, gdy używany na wartości liczbowe.Aby uzyskać więcej informacji, zobacz "Operacje bitowe" w Operatory logiczne i bitowe w Visual Basic.

Typ bezpieczeństwa

Operandy normalnie powinny być tego samego typu.Na przykład, jeśli przeprowadzasz dodanie z Integer zmiennej, należy dodać go do innego Integer zmienną, a należy przypisać wynik do zmiennej typu Integer jak również.

Jednym ze sposobów zapewnienia dobrej bezpiecznego typu kodowania praktyką jest użycie Option Strict — Instrukcja.Jeśli ustawisz Option Strict On, Visual Basic automatycznie wykonuje safe typu konwersji.Na przykład, jeśli użytkownik spróbuje dodać Integer zmienna Double zmienna i przypisać wartości do Double zmiennej, operacja działa normalnie, ponieważ Integer wartości mogą być konwertowane na Double bez utraty danych.Konwersje typu niebezpieczne, z drugiej strony, spowodować błąd kompilatora z Option Strict On.Na przykład, jeśli użytkownik spróbuje dodać Integer zmienna Double zmienna i przypisać wartości do Integer zmiennej, błąd kompilatora wyników, ponieważ Double zmienna nie można niejawnie przekonwertować do typu Integer.

Jeśli ustawisz Option Strict Off, jednak Visual Basic umożliwia zawężającej konwersje niejawne na miejsce, chociaż może spowodować nieoczekiwane utraty danych lub precision.Z tego powodu firma Microsoft zaleca korzystanie z Option Strict On podczas pisania kodu produkcji.Aby uzyskać więcej informacji, zobacz Rozszerzanie i zwężanie konwersji (Visual Basic).

Zobacz też

Informacje

Operatory arytmetyczne (Visual Basic)

Bit Shift — Operatory (Visual Basic)

Koncepcje

Operatory porównania w Visual Basic

Operatory łączenia w Visual Basic

Operatory logiczne i bitowe w Visual Basic

Skuteczna kombinacja operatorów (Visual Basic)