Differenze tra le versioni di "Rappresentazione esadecimale di un dato a lunghezza variabile"
Riga 12: | Riga 12: | ||
b = rob Mod 128 | b = rob Mod 128 | ||
− | rob = | + | rob = Fix(rob / 128) |
Riga 19: | Riga 19: | ||
a = rob Mod 128 | a = rob Mod 128 | ||
a = a Or 128 | a = a Or 128 | ||
− | rob = | + | rob = Fix(rob / 128) |
''<Font Color= #006400>' mostra il valore finale con formato a lunghezza variabile:''</font> | ''<Font Color= #006400>' mostra il valore finale con formato a lunghezza variabile:''</font> |
Versione delle 09:38, 25 mar 2012
Verrà mostrato un algoritmo per ottenere la rappresentazione esadecimale di un dato a lunghezza variabile. {1}
' Gambas class file Public Sub Button1_Click() Dim a, b, rob As Integer c = InputBox("Immetti un numero in forma decimale:") b = rob Mod 128 rob = Fix(rob / 128) While rob > 0 a = rob Mod 128 a = a Or 128 rob = Fix(rob / 128) ' mostra il valore finale con formato a lunghezza variabile: Print Hex(a), Hex(b, 2) Wend End
Note
[1] Tale formato rappresenta i numeri usando solo sette bit per byte, mentre il bit più significativo è impostato ad un valore tale da poterlo riconoscere. Se la rappresentazione contiene più byte per esprimere un numero, il bit più significativo dei primi byte sarà posto sempre ad 1, mentre quello dell'ultimo byte sarà sempre posto a 0. Tale impostazione sta ad indicare che, quando il bit più significativo è posto ad 1, tale byte non è l'ultimo della rappresentazione esadecimale, ma che dopo di esso v'è un altro byte. Se il bit più significativo è invece posto a 0, allora vuol dire che il byte, al quale quel bit appartiene, è l'ultimo della rappresentazione.