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

Da Gambas-it.org - Wikipedia.
Riga 58: Riga 58:
 
   
 
   
 
   Dim pr As Process
 
   Dim pr As Process
   Dim ss As New String[]
+
   Dim s1, s2 As String
  Dim s As String
 
 
   
 
   
 
   pr = Shell "''linea_di_comando_bash''" For Read
 
   pr = Shell "''linea_di_comando_bash''" For Read
 
    
 
    
 
   While Not Eof(pr)
 
   While Not Eof(pr)
     Input #pr, s
+
     Input #pr, s1
     If Left(s, 2) = "0x" Then Exit
+
     If Left(s1, 2) = "0x" Then Exit
 
   Wend
 
   Wend
 
   
 
   
  <FONT color=#006400>' ''Dividiamo la stringa in modo tale da ottenere la seconda parte priva della “x”:''</font>
+
  <FONT color=gray>' ''Prendiamo della stringa i caratteri dopo la “x”, ossia soltanti quelli che rappresentano strettamente il numero esadecimale:''</font>
     ss = Split(s, "x")
+
     s2 = Right(s1, Len(s1) - 2)
 
   
 
   
  <FONT color=#006400>' ''Mostriamo sia il valore esadecimale (senza la "x") che quello decimale:''</font>
+
  <FONT color=gray>' ''Mostriamo sia il valore esadecimale (ma senza la "x") sia quello decimale:''</font>
     Print ss[1], Val("&" & ss[1])
+
     Print s2, Val("&" & s2)
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione delle 07:36, 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 s1, s2 As String

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

' Prendiamo della stringa i caratteri dopo la “x”, ossia soltanti quelli che rappresentano strettamente il numero esadecimale:
   s2 = Right(s1, Len(s1) - 2)

' Mostriamo sia il valore esadecimale (ma senza la "x") sia quello decimale:
   Print s2, Val("&" & s2)

End