Differenze tra le versioni di "Convertire un numero da rappresentazione Esadecimale a Decimale"
Riga 2: | Riga 2: | ||
− | <FONT color=#B22222><B>1 - </b></font>Possiamo in via generale utilizzare | + | <FONT color=#B22222><B>1 - </b></font>Possiamo in via generale utilizzare una variabile: |
− | |||
− | |||
− | |||
− | |||
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
− | Dim | + | Dim i as integer |
− | + | i = &4B56 |[[#Note|1]]| | |
− | Print | + | Print i |
'''End''' | '''End''' | ||
Riga 19: | Riga 15: | ||
− | <FONT color=#B22222><B>2 - </b></font>Se il valore da convertire in decimale deve essere mostrato in console, possiamo fare semplicemente così: | + | <FONT color=#B22222><B>2 - </b></font>Se il valore da convertire in decimale deve essere solamente e direttamente mostrato in console, possiamo fare semplicemente così: |
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
Riga 37: | Riga 33: | ||
− | <FONT color=#B22222><B>4 - </b></font>Se si deve utilizzare una variabile, nella quale c'è il puro valore esadecimale, possiamo fare così: | + | <FONT color=#B22222><B>4 - </b></font>Se si deve utilizzare una variabile di tipo stringa, nella quale c'è il puro valore esadecimale in formato stringa, possiamo fare così: |
− | |||
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
− | Dim | + | Dim s As String = "07A120" |
− | Dim | + | Dim i As Integer |
− | + | s = "&" & s | |
− | + | i = Val(s) | |
− | Print | + | Print i |
'''End''' | '''End''' |
Versione delle 19:10, 31 ott 2014
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 una variabile:
Public Sub Button1_Click() Dim i as integer i = &4B56 |1| Print i End
2 - Se il valore da convertire in decimale deve essere solamente e direttamente 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 di tipo stringa, nella quale c'è il puro valore esadecimale in formato stringa, possiamo fare così:
Public Sub Button1_Click() Dim s As String = "07A120" Dim i As Integer s = "&" & s i = Val(s) Print i End
5 - Se il valore in rappresentazione esadecimale è contenuto in una variabile di tipo Puntatore:
Public Sub Main() Dim p As Pointer p = Alloc("3E8") Print Val("&" & String@(p)) End
6 - Se invece dobbiamo estrarre il valore decimale da un esadecimale, restituito da un comando bash gestito con Process, e 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
7 - Utilizzando le funzioni di rappresentazione di memoria dei dati e le funzioni che restituiscono il valore che si trova memorizzato all'indirizzo specificato da un Puntatore:
Public Sub Main() Dim h, i As Integer h = &01869F i = Int@(MkInt(h)) Print i End
8 - Limitatamente a valori di tipo Byte. utilizzando la funzione Chr() e le funzioni che restituiscono il valore che si trova memorizzato all'indirizzo specificato da un Puntatore:
Public Sub Main() Dim b1, b2 As Byte b1 = &A4 b2 = Byte@(Chr(b1)) Print b2 End
9 - Utilizzando una variabile vettoriale:
Public Sub Main() Dim ii As new Integer[] ii.Add(&123456) Print ii[0] End
Note
[1] Il carattere "h" è un prefisso che indica l'esadecimale. Solitamente nei linguaggi BASIC, come Gambas, per indicare la rappresentazione esadecimale si usa il prefisso "&h", esempio: &h2013.
Ad ogni modo, in Gambas la rappresentazione esadecimale di un numero può essere anche con il solo prefisso "&", per esempio: &2013.