Differenze tra le versioni di "Convertire un numero da rappresentazione binaria in decimale"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
Per convertire un numero, espresso in formato a rappresentazione binaria, nella corrispondente rappresentazione ''decimale'', potremo utilizzare questo algoritmo:  |[[#Note|1]]|
+
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 * 2<SUP>7</sup>) + (0 * 2<SUP>6</sup>) + (1 * 2<SUP>5</sup>) + (0 * 2<SUP>4</sup>) + (1 * 2<SUP>3</sup>) + (0 * 2<SUP>2</sup>) + (1 * 2<SUP>1</sup>) + (0 * 2<SUP>0</sup>) =
 +
 +
= (1 * 128) + (0 * 64) + (1 * 32) + (0 * 16) + (1 * 8) + (0 * 4) + (1 * 2) + (0 * 1) =
 +
 
 +
= 128 + 0 + 32 + 0 + 8 + 0 + 2 =
 +
 +
=  <FONT color=#B22222>170</font>
 +
 
 +
 
 +
Per ottenere la conversione in Gambas potremo utilizzare questo codice:  |[[#Note|1]]|
 
  '''Public''' Sub Button1_Click()   
 
  '''Public''' Sub Button1_Click()   
 
   
 
   

Versione delle 05:25, 17 dic 2013

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 =

=  170


Per ottenere la conversione in Gambas potremo utilizzare questo codice: |1|

Public Sub Button1_Click()  

Dim a As String  
Dim b, Intero, InteroFinale As Integer  
Dim Esponente, crt As Integer

 a = InputBox("Immetti un numero in formato binario:") 
 
 Esponente = 0  
   
  For b = Len(a) To 1 Step -1  
  
    crt = Int(Val(Mid(a, b, 1)))  
    Intero = crt * 2 ^ Esponente  
    Esponente += 1  
    InteroFinale = InteroFinale + Intero  
   
  Next  
 
 Print InteroFinale

End


Note

[1] Il presente algoritmo è stato suggerito dall'utente Picavbg del forum di Gambas-it.org.