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.1. Numeric Integral Datatypes - Byte Short Integer Long

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.

Tot nu toe kennen we de datatypes Integer, String en Boolean.  Tal van andere datatypes zijn ook ingebouwd en beschikbaar.

Om gehele waarden (zonder cijfers na het decimaal scheidingssymbool) voor te stellen :
Byte     Byte    1 byte  0 <-> 255 (unsigned)
SByte    SByte   1 byte  -128 <-> +127 (signed)

Short    Int16   2 bytes -32,768 <-> +32,767 (signed)
UShort   UInt16  2 bytes 0 <-> 65,535 (unsigned)

Integer  Int32   4 bytes -2,147,483,648 <-> +2,147,483,647 (signed)
                         about -2 to +2 billion (short scale)
                         about -2 to +2 milliard (long scale)
UInteger UInt32  4 bytes 0 <-> 4,294,967,295 (unsigned)
                         0 to about 4 billion (short scale)
                         0 to about 4 milliard (long scale)

Long     Int64   8 bytes -9,223,372,036,854,775,808 <->
                         +9,223,372,036,854,775,807 (signed)
                         about -9 to +9 quintillion (short scale)
                         about -9 to +9 trillion (long scale)
ULong    UInt64  8 bytes 0 <-> 18,446,744,073,709,551,615 (unsigned)
                         0 to about 18 quintillion (short scale)
                         0 to about 18 trillion (long scale)
In de eerste kolom staan de Visual Basic namen voor de datatypes.  Deze namen zijn specifiek voor het coderen met Visual Basic.  In de tweede kolom staan de namen die men in .NET heeft gegeven aan deze datatypes, deze namen zijn ook bruikbaar in de taal Visual Basic.  Het volstaat deze .NET namen te kennen, dan weet je ook meteen hoe in andere .NET-talen ("CLR compliant" talen) naar deze datatypes kan verwijzen.
Alle .NET talen gebruiken voor een groot deel dezelfde datatypes, namelijk deze gespecificeerd in de "Common Language Types" (CLT) van .NET.

De S en U prefixen staan voor "Signed" en "Unsigned", wat aangeeft of er een "sign-bit" gebruikt word voor dit datatype.

5.1.1. Unsigned Integral Datatypes

Voor het unsigned Byte datatype wordt intern 1 byte (of 8 bits) gebruikt om de waarde te representeren.  Met 8 bits die elk 0 of 1 kunnen zijn, zijn er 2^8 (of 256) mogelijke waarden voor te stellen.  Omdat men ook 0 ([0000 0000]) wil voorstellen, start men bij 0 en is de maximum voor te stellen waarde 255 ([1111 1111]).

Alle andere unsigned integral datatypes (UShort, UInteger en ULong) gebruiken een gelijkaardige interne representatie, maar gebruiken meer bits en hebben dus een groter bereik.

5.1.2. Signed Integral Datatypes

De "most significant bit" (MSB) wordt gebruikt voor de sign-bit.  Positief wordt aangegeven met een 0, negatief met een 1.  De overige bits (dus bijvoorbeeld de resterende 7 bits bij het datatype SByte) worden gebruikt om in 2-complement het getal voor te stellen.

We weten dat de conditie 7 And Not 7 = 0 evalueert naar True.  7 wordt binair voorgesteld als [0000 0111], Not 7 moet dan [1111 1000] zijn, want [0000 0111] And [1111 1000] resulteert in [0000 0000].  Als de eerste 1 van [1111 1000] betekent dat het om een negatief getal gaat, dan schiet [111 1000] over.  Gezien dit een 2-complement notatie is, kunnen we de bits inverteren en er [1] bij optellen, dus [000 0111] + [1], wat resulteert in [000 1000] (of 8).  Not 7 is dus ook wel -8.

Enkele getallen uit het SByte bereik :
         sign-bit
   0 -> [0        000 0000]

  +1 -> [0        000 0001]
  +2 -> [0        000 0010]
+126 -> [0        111 1110]
+127 -> [0        111 1111] -> maximum value

  -1 -> [1        111 1111]
  -2 -> [1        111 1110]
-126 -> [1        000 0010]
-127 -> [1        000 0001]
-128 -> [1        000 0000] -> minimum value
Alle ander unsigned integral datatypes (Short, Integer en Long) gebruiken een gelijkaardige interne representatie, maar gebruiken meer bits en hebben dus een groter bereik.

De Long- en ULong datatypes hebben het grootste bereik.  Integer en UInteger zijn op de huidige uitvoeringsplatformen (32-bits) de meest performante datatypes.

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