Tra i nuovi tipi offerti da .NET Framework 4.0, già nell’attuale Beta 1, c’è il nuovo System.Numerics.BigInteger. Tale oggetto ha lo scopo di rappresentare un intero (con segno) arbitrariamente grande, ossia senza limite inferiore e superiore, come invece avviene per altri tipi valore .NET. BigInteger, infatti, non ha proprietà MinValue e MaxValue. L’unica cosa a cui bisogna fare attenzione è il rischio di incorrere in un overflow nel caso in cui il valore diventi eccessivamente grande.
Alcuni esempi d’uso:
'Dichiarazione di istanza
Dim myInt As New System.Numerics.BigInteger
'Può essere il più piccolo dei valori Short...
myInt = Short.MinValue
'...come il più grande dei Long
myInt = Long.MaxValue
'Il costruttore accetta argomenti, anche Double
Dim myInt2 As New System.Numerics.BigInteger(2589352.425)
'E' possibile utilizzare operatori di conversione
Dim aSingle As Single = 1234.56
Dim myInt3 As System.Numerics.BigInteger = CType(aSingle, Numerics.BigInteger)
La struttura offre anche alcuni metodi per l’esecuzione di operazioni matematiche. Lasciando ad IntelliSense il compito di mostrarvi tutto ciò che è possibile fare, vi lascio alcuni piccoli esempi, dai quali si può vedere il supporto per operazioni anche complesse:
'Sottrazione tra BigInteger
Console.WriteLine(Numerics.BigInteger.Subtract(myInt, myInt3))
'Logaritmo in base 10
Console.WriteLine(Numerics.BigInteger.Log10(myInt))
'Elevamento a potenza
Console.WriteLine(Numerics.BigInteger.Pow(myInt3, 2))
La pagina MSDN per questo nuovo tipo si trova qui.
Alessandro