Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

5.4. Numeric Literals en Type Coercion

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

5.4.1. Numerieke Literals zonder Type Coercion

Elke literal expressie waarin verwezen wordt naar een numerieke waarde zonder het gebruik van "type coercion", zal beschouwd worden als een Integer, Long of Double expressie.

Indien de literal expressie een gehele waarde voorstelt, zal deze beschouwd worden als een Integer of Long expressie.

Een numerieke literal wordt door de compiler gezien als een Integer expressie indien de geformuleerde gehele waarde past in het bereik van het Integer datatype (*).

Een numerieke literal wordt door de compiler gezien als een Long expressie indien de geformuleerde gehele waarde niet past in het bereik van het Integer datatype, maar wel past in het bereik van het Long datatype (**).

Een numerieke literal wordt door de compiler gezien als een Double expressie indien de geformuleerde decimale waarde past in het bereik van het Double datatype.
Visual Basic 2012 Broncode - Codevoorbeeld 92
Module Example1
    Sub Main()
        Console.WriteLine("Integer :")
        Console.WriteLine("Min Value : " & Integer.MinValue)
        Console.WriteLine("Max Value : " & Integer.MaxValue)
        Console.WriteLine("Max Literal Value : " & 2147483647)
        Console.WriteLine()
        '
        Console.WriteLine("Long :")
        Console.WriteLine("Min Value : " & Long.MinValue)
        Console.WriteLine("Max Value : " & Long.MaxValue)
        Console.WriteLine("Max Literal Value : " & 9223372036854775807)
        Console.WriteLine()
        '
        Console.WriteLine("Double :")
        Console.WriteLine("Negative Min (Literal) Value : " & _
                          -1.7976931348623157E+308) ' Double.MinValue
        Console.WriteLine("Negative Max (Literal) Value : " & _
                          -4.94065645841247E-324)
        Console.WriteLine("Zero (Literal) : " & 0.0)
        Console.WriteLine("Positive Min (Literal) Value : " & _
                          +4.94065645841247E-324)   ' Double.Epsilon
        Console.WriteLine("Positive Max (Literal) Value : " & _
                          +1.7976931348623157E+308) ' Double.MaxValue
        '
        Console.ReadLine()
    End Sub
End Module
Console Application Output
Integer :
Min Value : -2147483648
Max Value : 2147483647
Max Literal Value : 2147483647

Long :
Min Value : -9223372036854775808
Max Value : 9223372036854775807
Max Literal Value : 9223372036854775807

Double :
Negative Min (Literal) Value : -1,79769313486232E+308
Negative Max (Literal) Value : -4,94065645841247E-324
Zero (Literal) : 0
Positive Min (Literal) Value : 4,94065645841247E-324
Positive Max (Literal) Value : 1,79769313486232E+308
(*) Een expressie -2147483648 die zou verwijzen naar de minimum Integer waarde wordt door de compiler gezien als een Long expressie.  Dit komt doordat de Visual Basic compiler het min-symbool (-) niet beschouwd als onderdeel van de numerieke literal.  De parser leest het numerieke deel (2147483648), en probeert daarop de unary negation operator (-) toe te passen.  Het numerieke deel (2147483648) valt hier buiten het bereik van het Integer datatype, en wordt daarom als een Long expressie beschouwd.

(**) Een expressie -9223372036854775808 die zou moeten verwijzen naar de minimum Long waarde zal door dezelfde reden door de compiler geweigerd worden omdat het leidt tot een "overflow".

5.4.2. Numerieke Literals met Type Coercion

Naast Integer, Long- en Double literals, kan men ook door middel van "type coercion" (het expliciet aangeven van datatype) andere numerieke literals vormen.

Men kan het datatype bij numerieke literals expliciet aangeven door een "type karakter" als suffix in die expressie te gebruiken.
Datatype :        Type character :

Byte              <none>
SByte             <none>
Short             S
UShort            US
Integer           I
UInteger          UI
Long              L
ULong             UL

Single            F ("Float")
Double            R ("Real")
Decimal           D
Visual Basic 2012 Broncode - Codevoorbeeld 93
Module Example2
    Sub Main()
        Dim value As Decimal = 9223372036854775808D                       ' (1)
    End Sub
End Module
Zonder type karakter D op regel (1) krijgen we - zoals verklaard werd in vorig voorbeeld - at compiletime een overflow.

5.4.3. Hexadecimale en Octale Literals

Integral literals zijn opgesteld aan de hand van het decimaal talstelsel ( basis 10).  Toch is het mogelijk om een hexadecimaal (basis 16) of octaal (basis 8) talstelsel te gebruiken, hiervoor heb je respectievelijk de prefixen &H en &O nodig.
Visual Basic 2012 Broncode - Codevoorbeeld 94
Module Example3
    Sub Main()
        Dim value1 As Short = &HF
        Console.WriteLine(value1)
        '
        Dim value2 As Short = &H10
        Console.WriteLine(value2)
        '
        Dim value3 As Short = &O7
        Console.WriteLine(value3)
        '
        Dim value4 As Short = &O10
        Console.WriteLine(value4)
        '
        Console.ReadLine()
    End Sub
End Module
Console Application Output
15
16
7
8

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.