Differenze tra le versioni di "Ottenere un numero dalla sua memorizzazione in formato Little-Endian"
Da Gambas-it.org - Wikipedia.
Riga 2: | Riga 2: | ||
Porremo come esempio un vettore di tipo ''Byte[ ]'' di quattro elementi, contenente i seguenti valori: &04, &03, &02 e &01, che rappresentano in formato ''Little-Endian'' il numero decimale: ''16909060''. Per ottenere detto numero, potremo utilizzare alcune modalità: | Porremo come esempio un vettore di tipo ''Byte[ ]'' di quattro elementi, contenente i seguenti valori: &04, &03, &02 e &01, che rappresentano in formato ''Little-Endian'' il numero decimale: ''16909060''. Per ottenere detto numero, potremo utilizzare alcune modalità: | ||
− | + | Public Sub Main() | |
Dim bb As Byte[] = [&04, &03, &02, &01] | Dim bb As Byte[] = [&04, &03, &02, &01] | ||
Riga 11: | Riga 11: | ||
Print i | Print i | ||
− | + | End | |
oppure: | oppure: | ||
− | + | Public Sub Main() | |
Dim bb As Byte[] = [&04, &03, &02, &01] | Dim bb As Byte[] = [&04, &03, &02, &01] | ||
Riga 24: | Riga 24: | ||
Print i | Print i | ||
− | + | ||
− | + | End | |
o anche: | o anche: | ||
− | + | Public Sub Main() | |
Dim bb As Byte[] = [&04, &03, &02, &01] | Dim bb As Byte[] = [&04, &03, &02, &01] | ||
Riga 36: | Riga 36: | ||
Print i | Print i | ||
− | + | End |
Versione attuale delle 08:53, 23 giu 2024
Il caso è quello in cui si intende convertire i dati di un valore, memorizzati in formato Little-Endian all'interno di un vettore di tipo Byte[ ], ottenendo così al termine l'effettivo e reale numero corrispondente.
Porremo come esempio un vettore di tipo Byte[ ] di quattro elementi, contenente i seguenti valori: &04, &03, &02 e &01, che rappresentano in formato Little-Endian il numero decimale: 16909060. Per ottenere detto numero, potremo utilizzare alcune modalità:
Public Sub Main() Dim bb As Byte[] = [&04, &03, &02, &01] Dim i As Integer i = Int@(bb.Data) Print i End
oppure:
Public Sub Main() Dim bb As Byte[] = [&04, &03, &02, &01] Dim i As Integer i = bb[0] i += bb[1] * 256 ' &0100 i += bb[2] * 65536 ' &010000 i += bb[3] * 16777216 ' &01000000 Print i End
o anche:
Public Sub Main() Dim bb As Byte[] = [&04, &03, &02, &01] Dim i As Integer i = (bb[0] Or ((bb[1] * CInt(2 ^ 8)))) Or (bb[2] * CInt(2 ^ 16)) Or (bb[3] * CInt(2 ^ 24)) Print i End