|
Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
5.4.1. Numerieke Literals zonder Type CoercionElke 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 2010 Broncode 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) Console.WriteLine( "Negative Max ( Literal ) Value : " & _ -4.94065645841247E-324) Console.WriteLine( "Zero ( Literal ) : " & 0.0) Console.WriteLine( "Positive Min ( Literal ) Value : " & _ +4.94065645841247E-324) Console.WriteLine( "Positive Max ( Literal ) Value : " & _ +1.7976931348623157E+308) Console.ReadLine() End SubEnd ModuleDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
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". boven
5.4.2. Numerieke Literals met Type CoercionNaast 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 2010 Broncode Module Example2 Sub Main() Dim value As Decimal = 9223372036854775808D End SubEnd ModuleDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Zonder type karakter D op regel (1) krijgen we - zoals verklaard werd in vorig voorbeeld - at compiletime een overflow. boven
5.4.3. Hexadecimale en Octale LiteralsIntegral 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 2010 Broncode 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 SubEnd ModuleDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output 15
16
7
8
Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
|