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 | + | Dim s1, s2 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, | + | Input #pr, s1 |
− | If Left( | + | If Left(s1, 2) = "0x" Then Exit |
Wend | Wend | ||
− | <FONT color= | + | <FONT color=gray>' ''Prendiamo della stringa i caratteri dopo la “x”, ossia soltanti quelli che rappresentano strettamente il numero esadecimale:''</font> |
− | + | s2 = Right(s1, Len(s1) - 2) | |
− | <FONT color= | + | <FONT color=gray>' ''Mostriamo sia il valore esadecimale (ma senza la "x") sia quello decimale:''</font> |
− | Print | + | 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