Oppure

Loading
22/09/14 20:41
Quindi ti serve un passaggio con un tipo di dati più "capiente" ... potrebbe funzionare con un Decimal ...
22/09/14 20:44
amreo
quanti bit sono?
aaa
22/09/14 20:48
128 ma sono organizzati in modo da poter gestire anche decimali.
22/09/14 20:50
amreo
Allora dovrebbe andare bene. per scartare i 64 bit superiori basta che faccio numero and ULong.MaxValue (= 0xFFFFFFFFFFFFFFFF)?
aaa
22/09/14 20:52
Per tornare al problema dell'UInt64, se hai una variabile v che contiene il massimo

Dim v As UInt64 = UInt64.MaxValue

puoi scrivere

Dim d1 As Decimal = v

d1 = d1 + 10   ' ----> sommi 10

Dim db() As Integer = Decimal.GetBits(d1)
Dim d2 As New Decimal(db(0), db(1), 0, 0, 0)
v = d2  ' ----> ottieni il valore 9 in v