Differenze tra le versioni di "Convertire un numero da rappresentazione Esadecimale a Decimale"

Da Gambas-it.org - Wikipedia.
(Nuova pagina: Per ottenere la rappresentazione '''''decimale''''' di un valore espresso in partenza in ''esadecimale'', possiamo utilizzare diverse modalità a seconda delle circostanze. <FONT col...)
 
Riga 65: Riga 65:
 
   While Not Eof(pr)
 
   While Not Eof(pr)
 
     Input #pr, s
 
     Input #pr, s
     If Mid(s, 1, 2) = "0x" Then Exit
+
     If Left(s, 2) = "0x" Then Exit
 
   Wend
 
   Wend
 
   
 
   

Versione delle 07:25, 1 dic 2013

Per ottenere la rappresentazione decimale di un valore espresso in partenza in esadecimale, possiamo utilizzare diverse modalità a seconda delle circostanze.


1 - Possiamo in via generale utilizzare la funzione di conversione Val() secondo la seguente sintassi:

decimale = VAL(stringa_esadecimale)

Esempio:

Public Sub Button1_Click()

 Dim intIntero as integer

  intIntero = Val("&h4b56")

  Print intIntero

End


2 - Se il valore da convertire in decimale deve essere mostrato in console, possiamo fare semplicemente così:

Public Sub Button1_Click()

  Print &4b56

End


3 - Se utilizziamo una TextArea possiamo fare così:

Public Sub Button1_Click()

  TextArea1.Text = &4b56

End


4 - Se si deve utilizzare una variabile, nella quale c'è il puro valore esadecimale; possiamo fare così:

Public Sub Button1_Click()

 Dim ss As String = "07A120"
 Dim intIntero As Integer
 
   ss = "&" & ss

  intIntero = Val(ss)

  Print intIntero

End


5 - Se invece dobbiamo estrarre il valore decimale da un esadecimale restituito da un comando bash, o comunque rappresentato dal valore "0x....", allora possiamo fare così:

Public Sub Button1_Click()

 Dim pr As Process
 Dim ss As New String[]
 Dim s As String

  pr = Shell "linea_di_comando_bash" For Read
  
  While Not Eof(pr)
    Input #pr, s
    If Left(s, 2) = "0x" Then Exit
  Wend

' Dividiamo la stringa in modo tale da ottenere la seconda parte priva della “x”:
   ss = Split(s, "x")

' Mostriamo sia il valore esadecimale (senza la "x") che quello decimale:
   Print ss[1], Val("&" & ss[1])

End