Rappresentazione binaria dei dati
Le istruzioni
READ e
WRITE permettono di leggere e scrivere la rappresentazione dei valori di tipo dati di Gambas.
Tipo di dato
|
Lunghezza
|
Reppresentazione
|
Boolean
|
1 byte
|
0 per FALSE, 255 per TRUE.
|
Byte
|
1 byte
|
Il valore del dato in binario.
|
Short
|
2 bytes
|
Il valore del dato in binario.
|
Integer
|
4 bytes
|
Il valore del dato in binario.
|
Long
|
8 bytes
|
Il valore del dato in binario.
|
Pointer
|
4 bytes in 32 bits
8 bytes in 64 bits
|
Il valore del puntatore in binario.
|
Single
|
4 bytes
|
Il valore del dato in binario.
|
Float
|
8 bytes
|
Il valore del dato in binario.
|
Data (Date)
|
8 bytes
|
La data e il tempo come due interi di quattro bytes.
|
String
|
variabile
|
La lunghezza della stringa è scritta all'inizio come un intero a lunghezza variabile:
-
Viene scritto un byte se la lunghezza della stringa è uguale o minore di 127 caratteri.
-
Due bytes vengono scritti se la lunghezza della stringa è fra 128 e 16383 caratteri.
-
Quattro bytes vengono scritti se la lunghezza della stringa e fra 16384 e 1073741824 caratteri.
-
Stringhe più lunghe in questo momento non possono essere scritte.
Quindi il contenuto della stringa viene scritto.
Invece i Memory streams leggono o scrivono stringhe con terminazioni nulle!
|
NULL
|
1 byte
|
I valori nulli e le stringhe nulle sono scritte come un singolo byte 0 .
|
Variant
|
Variabile
|
Quando si scrive un valore utilizzando un Variant, un byte che indica il valore del tipo di dato viene scritto all'inizio.
Il valore è lo stesso descritto in questa tabella.
|
Array
|
2 byte + lunghezza dell'array + contenuto dell'array
|
-
Un byte il cui valore è 65.
-
Un byte il cui valore rappresenta il tipo di dati del contenuto dell'array.
-
La lunghezza dell'array, scritta come la lunghezza di una stringa.
-
Il valore di ogni elemento dell'array.
|
Collection
|
1 byte + lunghezza della collection + contenuto della collection
|
-
Un byte il cui valore è 67 se le chiavi della collection sono case sensitive, 99 se non fanno distinzione tra maiuscole e minuscole.
-
La lunghezza della collection, scritta come la lunghezza di una stringa.
-
Per ciascun elemento della collection:
-
La chiave, scritta come una stringa
-
Il valore associato.
|
Strutture
|
Dimensione del contenuto
|
-
I contenuti della struttura sono scritti in ordine di dichiarazione in modo ricorsivo.
-
Gli array di array incorporati sono scritti in ordine. Contrariamente agli array normali, non viene scritta alcuna intestazione di dimensione o di tipo.
|
L'endianness dei dati binari, è lo stesso dello stream.
Vedi anche