Convertire un numero da rappresentazione binaria in decimale
Vai alla navigazione
Vai alla ricerca
Per convertire un numero, espresso in formato a rappresentazione binaria, nella corrispondente rappresentazione decimale, bisogna moltiplicare le cifre del numero binario per le potenze decrescenti di 2, e successivamente sommare i risultati.
Convertiamo, per esempio il numero binario 10101010:
(1 * 27) + (0 * 26) + (1 * 25) + (0 * 24) + (1 * 23) + (0 * 22) + (1 * 21) + (0 * 20) = = (1 * 128) + (0 * 64) + (1 * 32) + (0 * 16) + (1 * 8) + (0 * 4) + (1 * 2) + (0 * 1) = = 128 + 0 + 32 + 0 + 8 + 0 + 2 + 0 = = 170
Mostriamo un paio di modalità per ottenere la conversione in Gambas di un numero da rappresentazione binaria in decimale.
1a modalità
Public Sub Button1_Click()
Dim s As String
Dim bb As Byte[]
Dim j As Byte
Dim l As Long
s = InputBox("Immetti un numero in formato binario:")
bb = Byte[].FromString(s).Reverse()
For j = 0 To bb.Max
l += Val(Chr(bb[j])) * (2 ^ j)
Next
Print "Il corrispondente valore decimale è: "; l
End
2a modalità
Public Sub Main() [nota 1] Dim numero As Long Dim i, nbit, bitauno As Byte numero = 23750 nbit = CByte(Log2(numero) + 1) For i = 0 To nbit If BTst(numero, i) = True Then Inc bitauno Next Print "Il numero di bit a 1 è: "; bitauno End
Note
[1] Questo codice è stato proposto dai membri Gianluigi e TopFuel del forum www.gambas-it.org .