Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Rekenkundige operatoren worden gebruikt om veel van de bekende rekenkundige bewerkingen uit te voeren die betrekking hebben op de berekening van numerieke waarden die worden vertegenwoordigd door letterlijke waarden, variabelen, andere expressies, functie- en eigenschapsoproepen en constanten. Ook geclassificeerd met rekenkundige operatoren zijn de bit-shift-operatoren, die op het niveau van de afzonderlijke bits van de operanden handelen en hun bitpatronen naar links of rechts verplaatsen.
Rekenkundige bewerkingen
U kunt twee waarden in een expressie toevoegen in combinatie met de +-operator of een van elkaar aftrekken met de operator - (Visual Basic), zoals in het volgende voorbeeld wordt gedemonstreert.
Dim x As Integer
x = 67 + 34
x = 32 - 12
Negatie maakt ook gebruik van de Operator (Visual Basic), maar met slechts één operand, zoals in het volgende voorbeeld wordt gedemonstreert.
Dim x As Integer = 65
Dim y As Integer
y = -x
Vermenigvuldigen en delen gebruiken respectievelijk de * Operator en /Operator (Visual Basic), zoals in het volgende voorbeeld wordt gedemonstreert.
Dim y As Double
y = 45 * 55.23
y = 32 / 23
Exponentiation maakt gebruik van de operator ^, zoals in het volgende voorbeeld wordt gedemonstreert.
Dim z As Double
z = 23 ^ 3
' The preceding statement sets z to 12167 (the cube of 23).
Deling van gehele getallen wordt uitgevoerd met behulp van de \Operator (Visual Basic). De deling van het gehele getal retourneert het quotiënt, dat wil gezegd, het gehele getal dat het aantal keren aangeeft dat de deler in het dividend kan delen zonder rekening te houden met een restgetal. Zowel de deler als het dividend moeten integrale typen zijn (SByte
, Byte
, Short
, UShort
, Integer
, UInteger
, Long
, en ULong
) voor deze operator. Alle andere typen moeten eerst worden geconverteerd naar een integraal type. In het volgende voorbeeld ziet u de verdeling van gehele getallen.
Dim k As Integer
k = 23 \ 5
' The preceding statement sets k to 4.
Modulus-rekenkundige bewerkingen worden uitgevoerd met behulp van de Mod-operator. Deze operator retourneert de rest na het delen van de deler in het dividend een integraal aantal keren. Als zowel deler als het dividend integrale typen zijn, is de geretourneerde waarde integraal. Als deler en het dividend drijvende-kommatypen zijn, is de geretourneerde waarde ook drijvende komma. In het volgende voorbeeld ziet u dit gedrag.
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.
Poging tot delen door nul
Delen door nul heeft verschillende resultaten, afhankelijk van de betrokken gegevenstypen. In integrale delen (SByte
, Byte
, Short
, UShort
, Integer
, UInteger
, Long
, ULong
), genereert het .NET Framework een DivideByZeroException uitzondering. In divisiebewerkingen voor het Decimal
of Single
gegevenstype genereert .NET Framework ook een DivideByZeroException uitzondering.
In drijvendekommagedelingen waarbij het Double
gegevenstype betrokken is, wordt er geen uitzondering gegenereerd en is het resultaat het klasselid dat staat voor NaN, PositiveInfinityof NegativeInfinity, afhankelijk van het dividend. De volgende tabel bevat een overzicht van de verschillende resultaten van het delen van een Double
waarde door nul.
Dividendgegevenstype | Gegevenstype divisor | Dividendwaarde | Resultaat |
---|---|---|---|
Double |
Double |
0 | NaN (geen wiskundig gedefinieerd getal) |
Double |
Double |
> 0 | PositiveInfinity |
Double |
Double |
< 0 | NegativeInfinity |
Wanneer u een DivideByZeroException uitzondering vangt, kunt u de leden ervan gebruiken om deze te verwerken. De eigenschap bevat bijvoorbeeld de boodschaptekst voor de uitzondering Message. Zie Proberen voor meer informatie ... Vangen... Tot slot verklaring.
Operaties voor Bit-Shift
Een bit-shift-bewerking voert een rekenkundige verschuiving uit op een bitpatroon. Het patroon bevindt zich in de operand aan de linkerkant, terwijl de operand aan de rechterkant het aantal posities aangeeft dat het patroon moet worden verschoven. U kunt het patroon naar rechts verplaatsen met de >> operator of naar links met de << operator.
Het gegevenstype van de patroonoperand moet zijn SByte
: , Byte
, Short
, UShort
, Integer
, UInteger
, , Long
of ULong
. Het gegevenstype van de operand voor de verschuivingshoeveelheid moet zijn Integer
of moet worden uitgebreid tot Integer
.
Rekenkundige verschuivingen zijn niet cirkelvormig, wat betekent dat de bits die van het ene uiteinde van het resultaat zijn verschoven, niet opnieuw worden geïntroduceerd aan het andere uiteinde. De bitposities die bij een verschuiving zijn ontruimd, worden als volgt ingesteld:
0 voor een rekenkundige linker verschuiving
0 voor een rekenkundige rechterverschuiving van een positief getal
0 voor een rekenkundige rechterverschuiving van een niet-ondertekend gegevenstype (
Byte
,UShort
,UInteger
,ULong
)1 voor een rekenkundige rechterverschuiving van een negatief getal (
SByte
,Short
,Integer
ofLong
)
In het volgende voorbeeld wordt een Integer
waarde zowel links als rechts verplaatst.
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.
Rekenkundige verschuivingen genereren nooit overloop-uitzonderingen.
Bitsgewijze bewerkingen
Naast logische operators, Not
, , Or
And
en Xor
ook bitsgewijze rekenkundige bewerkingen uitvoeren wanneer deze worden gebruikt voor numerieke waarden. Zie Bitwise Operations in Logische en Bitwise Operators in Visual Basic voor meer informatie.
Typeveiligheid
Operanden moeten normaal gesproken van hetzelfde type zijn. Als u bijvoorbeeld toevoegt aan een Integer
variabele, moet u deze toevoegen aan een andere Integer
variabele en moet u het resultaat ook toewijzen aan een variabele van het type Integer
.
Een manier om een goede typeveilige coderingspraktijk te garanderen, is het gebruik van de Option Strict-instructie. Als u deze optie instelt Option Strict On
, voert Visual Basic automatisch typeveilige conversies uit. Als u bijvoorbeeld probeert een Integer
variabele toe te voegen aan een Double
variabele en de waarde toe te wijzen aan een Double
variabele, wordt de bewerking normaal uitgevoerd, omdat een Integer
waarde zonder verlies van gegevens kan worden geconverteerd Double
. Type-onveilige conversies veroorzaken daarentegen een compilerfout met Option Strict On
. Als u bijvoorbeeld probeert een Integer
variabele toe te voegen aan een Double
variabele en de waarde toe te wijzen aan een Integer
variabele, treedt er een compilerfout op omdat een Double
variabele niet impliciet kan worden geconverteerd naar het type Integer
.
Als u echter Visual Basic instelt Option Strict Off
, kunnen impliciete vernauwingsconversies plaatsvinden, hoewel ze kunnen resulteren in onverwacht verlies van gegevens of precisie. Daarom raden we u aan om te gebruiken Option Strict On
bij het schrijven van productiecode. Zie verbredings- en vernauwingsconversies voor meer informatie.