Conoscere un valore memorizzato in un file in modalità Big-Endian

Da Gambas-it.org - Wikipedia.
Versione del 16 apr 2018 alle 18:51 di Vuott (Discussione | contributi) (Creata pagina con "Leggendo in un file i byte rappresentanti un valore, memorizzato in modalità "''Big-Endian''", se invece il sistema operativo adotta la modalità ''Little-Endian'', si otterr...")

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

Leggendo in un file i byte rappresentanti un valore, memorizzato in modalità "Big-Endian", se invece il sistema operativo adotta la modalità Little-Endian, si otterrà un valore errato.

Ad esempio, se il valore è memorizzato nel file secondo l'ordine Big-Endian, come segue:

05 03 01

il sistema, che adotta la modalità Little-Endian, lo restituirà invertito:

01 03 05

Un modo, per ottenere una lettura coerente con la memorizzazione in modalità Big-Endian, può essere quello di usare un vettore di tipo Byte[].

Esempio:

Public Sub Main()
 
 Dim fl As File
 Dim bb As New Byte[3]
 Dim b As Byte
  
  fl = Open "/percorso/del/file" For Read
  
' Leggiamo dal file i tre byte che rappresentano il valore:
  bb.Read(fl, 0, 3)
  
  bb.Reverse()
  
  Print Int@(bb.Data)
  
  fl.Close
  
End



Pagina in costruzione !