Differenze tra le versioni di "Distinguere ogni byte della rappresentazione esadecimale di un valore decimale"
Da Gambas-it.org - Wikipedia.
Riga 14: | Riga 14: | ||
===Uso della funzione ''Shr( )''=== | ===Uso della funzione ''Shr( )''=== | ||
− | + | Public Sub Main() | |
− | + | Dim i As Integer | |
i = 123456 | i = 123456 | ||
Riga 25: | Riga 25: | ||
Print Hex(i And &FF, 2) | Print Hex(i And &FF, 2) | ||
− | + | End | |
===Uso di un Puntatore=== | ===Uso di un Puntatore=== | ||
− | + | Public Sub Main() | |
− | + | Dim c, i As Integer | |
− | + | Dim p As Pointer | |
i = 123456 | i = 123456 | ||
Riga 42: | Riga 42: | ||
Next | Next | ||
− | + | End | |
− | |||
− | |||
=Note= | =Note= | ||
− | [1] Durante la scrittura del valore in memoria, con riferimento alla quantità di byte | + | [1] Durante la scrittura del valore in memoria, con riferimento alla quantità di byte comunque da occupare, viene tenuto conto ovviamente anche del "''tipo'' " di valore dichiarato. |
Versione delle 16:23, 1 lug 2024
Ogni valore numerico può essere rappresentato in varie modalità (decimale, esadecimale, ottale, etc). Quando un numero viene salvato in memoria, vengono scritti in ciascuna cella i singoli valori che insieme costituiscono il valore numerico salvato. [Nota 1]
Così, se ad esempio il valore decimale iniziale è 123456, i singoli byte della corrispondente sua rappresentazione esadecimale sono 00|01|E2|40:
Indice | singolo byte | |
[0] | <- | 00 |
[1] | <- | 01 |
[2] | <- | E2 |
[3] | <- | 40 |
Per conoscere i singoli byte esadecimali che compongono un numero, è possibile adottare alcune modalità.
Uso della funzione Shr( )
Public Sub Main() Dim i As Integer i = 123456 Print Hex(Shr(i And &FF000000&, 24), 2);; Print Hex(Shr(i And &FF0000&, 16), 2);; Print Hex(Shr(i And &FF00&, 8), 2);; Print Hex(i And &FF, 2) End
Uso di un Puntatore
Public Sub Main() Dim c, i As Integer Dim p As Pointer i = 123456 p = VarPtr(i) For c = 3 To 0 Step -1 Print Hex(Byte@(p + c), 2);; Next End
Note
[1] Durante la scrittura del valore in memoria, con riferimento alla quantità di byte comunque da occupare, viene tenuto conto ovviamente anche del "tipo " di valore dichiarato.