Documentazione di Gambas
Application Repository
Come...
Componenti
Da fare
Documentazione Sviluppatori
Documenti
Indice del linguaggio
LEGGIMI
Lessico
Licenza dello Wiki
Messaggi di errore
Panoramica del linguaggio
Array nativi
Assegnazione
Classi contenitore native
Costanti
Costanti predefinite
Dichiarazione di Array (o Matrice)
Dichiarazione di enumerazione
Dichiarazione di metodi
Dichiarazione di struttura
Dichiarazione di una proprietà
Dichiarazione di variabili locali
Dichiarazioni di costanti
Dichiarazioni di variabili
Espressioni
Eventi dichiarazioni
Eventi gestione
Eventi globali gestione
Formati definiti dall'utente
Funzioni aritmetiche
Funzioni di conversione
Funzioni di formattazione
Funzioni di localizzazione e traduzione
Funzioni di manipolazione dei bits
Funzioni di Stream e Input/Output
Funzioni di test sui caratteri
Funzioni intrinsiche
Funzioni logaritmi ed esponenziali
Funzioni numeriche casuali
Funzioni stringa
Funzioni su file e directory
Funzioni sui tipi di dati
Funzioni temporali
Funzioni trigonometriche
Funzioni varie
Gestione degli errori
Gestione dei Processi
Gestione delle classi e degli oggetti
Gestione delle funzioni esterne
Il modello a oggetti di Gambas
Loop degli eventi
Metodi di comparazione
Metodi speciali
Metodo Call
Numeri complessi
Numeri Interi
Numeri in virgola mobile
Operatori aritmetici
Operatori di assegnamento
Operatori logici
Operatori ordine di valutazione
Operatori stringa
Percorsi di File e Directory
Rappresentazione binaria dei dati
Sintassi della modalità file
Strutture di controllo e funzioni
Strutture di controllo sui cicli
Strutture di controllo varie
Tipi di dati
Uso di parole chiave riservate come identificatori
Registrazione
Ultime modifiche
Wiki Manual

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