Convertire un numero da Decimale in Binario
Vai alla navigazione
Vai alla ricerca
Per convertire un numero da Decimale in rappresentazione binaria, sono possibili almeno tre modalità.
Uso della funzione Bin() di Gambas
Come è noto, si può far uso agevolmente dell'apposita funzione Bin().
Uso di apposito algoritmo
Volendo, è ovviamente possibile raggiungere il medesimo risultato con apposito codice, come ad esempio il seguente:
Public Sub Main()
Dim i As Integer
Dim bb As New Byte[]
Dim b As Byte
i = 123456789
While i > 0
bb.Add(CByte(i Mod 2))
i \= 2
Wend
bb.Reverse
For b = 0 To bb.Max
Print bb[b];
Next
End
o anche il seguente (per convertire tipi di valori non superiori a 32 bit):
Public Sub Main()
Dim b As Byte
Dim i As Integer
i = 1257421
For b = 0 To 31
If i And (&80000000& \ CInt(2 ^ b)) Then
Print "1";
Else
Print "0";
Endif
Next
End
Uso della funzione esterna SDL_ltoa() del API di SDL2
E' inoltre possibile far uso della funzione esterna ltoa() del API di SDL2.
In tal caso sarà necessario installare nel sistema e richiamare nell'applicazione Gambas la libreria dinamica e condivisa: "libSDL2-2.0.so.0.2.0"
Mostriamo un semplice esempio:
Library "libSDL2-2.0:0.2.0" ' char * SDL_ltoa(long value, char * string, int radix) Private Extern SDL_ltoa(value As Integer, strP As Pointer, radix As Integer) Public Sub Main() Dim p As Pointer p = Alloc(64) SDL_ltoa(123456789, p, 2) Print String@(p) Free(p) End