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

Da Gambas-it.org - Wikipedia.
Riga 11: Riga 11:
 
   Dim intIntero as integer
 
   Dim intIntero as integer
 
   
 
   
   intIntero = Val("&h4b56")
+
   intIntero = Val("&h4B56")
 
   
 
   
 
   Print intIntero
 
   Print intIntero
Riga 22: Riga 22:
 
  '''Public''' Sub Button1_Click()
 
  '''Public''' Sub Button1_Click()
 
   
 
   
   Print &4b56
+
   Print &4B56
 
   
 
   
 
  '''End'''
 
  '''End'''
Riga 31: Riga 31:
 
  '''Public''' Sub Button1_Click()
 
  '''Public''' Sub Button1_Click()
 
   
 
   
   TextArea1.Text = &4b56
+
   TextArea1.Text = &4B56
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione delle 07:43, 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