Ottenere un numero dalla sua memorizzazione in formato Big-Endian

Da Gambas-it.org - Wikipedia.
Versione del 12 giu 2015 alle 01:25 di Vuott (Discussione | contributi) (Creata pagina con 'Il caso è quello in cui si intende convertire i dati di un valore, memorizzati in formato Big-Endian all'interno di un file o di un vettore di tipo Byte[], ottenendo così al...')

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Il caso è quello in cui si intende convertire i dati di un valore, memorizzati in formato Big-Endian all'interno di un file o di un vettore di tipo Byte[], ottenendo così al termine l'effettivo numero corrispondente.

Porremo come esempio un vettore di tipo Byte[] di tre elementi contenente i seguenti valori: &FF, &FF, &FF. Per ottenere il corrispondente numero potremo utilizzare due modalità:

Public Sub Main()

 Dim bb As Byte[] = [&FF, &FF, &FF]
 
  Print ((bb[0] Or ((bb[1] * CInt(2 ^ 8)))) Or ((bb[1] * CInt(2 ^ 16))))
 
End


oppure:

Public Sub Main()

 Dim q As Byte
 Dim bb As Byte[] = [&FF, &FF, &FF]
 Dim ris As Integer
     
  Do
    ris = (ris * CInt(2 ^ 8)) Or bb[q]
    Inc q
  Loop Until q = 3

  Print ris

End