Differenze tra le versioni di "Convertire un numero da Decimale in Binario"
Da Gambas-it.org - Wikipedia.
(Creata pagina con 'Come è noto, per convertire un numero da Decimale in rappresentazione binaria, si può far uso agevolmente dell'apposita funzione Bin$. Volendo, è ovviamente poss...') |
|||
Riga 1: | Riga 1: | ||
− | + | 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 [[Bin$|funzione Bin()]]. | ||
+ | |||
+ | |||
+ | ===Uso di apposito algoritmo=== | ||
Volendo, è ovviamente possibile raggiungere il medesimo risultato con apposito codice, come ad esempio il seguente: | Volendo, è ovviamente possibile raggiungere il medesimo risultato con apposito codice, come ad esempio il seguente: | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Riga 23: | Riga 28: | ||
Print "Risultato: "; s | Print "Risultato: "; s | ||
+ | '''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" | ||
+ | |||
+ | <FONT Color=gray>' ''SDL_ltoa((long)value, string, radix)''</font> | ||
+ | Private Extern SDL_ltoa(value As Long, strP As Pointer, radix As Integer) | ||
+ | |||
+ | |||
+ | '''Public''' Sub Main() | ||
+ | |||
+ | Dim p As Pointer | ||
+ | |||
+ | p = Alloc(32) | ||
+ | |||
+ | SDL_ltoa(483647, p, 2) | ||
+ | |||
+ | Print String@(p) | ||
+ | |||
+ | Free(p) | ||
+ | |||
'''End''' | '''End''' |
Versione delle 04:10, 7 lug 2015
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 n As Integer = 123456789 Dim bb As New Byte[] Dim s As String While n > 0 bb.Add(CByte(Asc(CStr(n Mod 2)))) n \= 2 Wend With bb .Reverse s = bb.ToString() End With Print "Risultato: "; s 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" ' SDL_ltoa((long)value, string, radix) Private Extern SDL_ltoa(value As Long, strP As Pointer, radix As Integer) Public Sub Main() Dim p As Pointer p = Alloc(32) SDL_ltoa(483647, p, 2) Print String@(p) Free(p) End