Passa al contenuto principale

Appendice B. Jump Table

Per brevità, questa jump table non mostra i byte iniziali riservati a future estensioni. Mostra anche solo una selezione dei byte iniziali che possono essere utilizzati per funzionalità opzionali. (Tutti gli interi senza segno sono in ordine di byte di rete.)

ByteStruttura/Semantica
0x00..0x17Intero 0x00..0x17 (0..23)
0x18Intero senza segno (segue un uint8_t di un byte)
0x19Intero senza segno (seguono due byte uint16_t)
0x1aIntero senza segno (seguono quattro byte uint32_t)
0x1bIntero senza segno (seguono otto byte uint64_t)
0x20..0x37Intero negativo -1-0x00..-1-0x17 (-1..-24)
0x38Intero negativo -1-n (segue un uint8_t di un byte per n)
0x39Intero negativo -1-n (seguono due byte uint16_t per n)
0x3aIntero negativo -1-n (seguono quattro byte uint32_t per n)
0x3bIntero negativo -1-n (seguono otto byte uint64_t per n)
0x40..0x57stringa di byte (seguono 0x00..0x17 byte)
0x58stringa di byte (un uint8_t di un byte per n, poi seguono n byte)
0x59stringa di byte (due byte uint16_t per n, poi seguono n byte)
0x5astringa di byte (quattro byte uint32_t per n, poi seguono n byte)
0x5bstringa di byte (otto byte uint64_t per n, poi seguono n byte)
0x5fstringa di byte, seguono stringhe di byte, terminata da "break"
0x60..0x77stringa UTF-8 (seguono 0x00..0x17 byte)
0x78stringa UTF-8 (un uint8_t di un byte per n, poi seguono n byte)
0x79stringa UTF-8 (due byte uint16_t per n, poi seguono n byte)
0x7astringa UTF-8 (quattro byte uint32_t per n, poi seguono n byte)
0x7bstringa UTF-8 (otto byte uint64_t per n, poi seguono n byte)
0x7fstringa UTF-8, seguono stringhe UTF-8, terminata da "break"
0x80..0x97array (seguono 0x00..0x17 elementi dati)
0x98array (un uint8_t di un byte per n, poi seguono n elementi dati)
0x99array (due byte uint16_t per n, poi seguono n elementi dati)
0x9aarray (quattro byte uint32_t per n, poi seguono n elementi dati)
0x9barray (otto byte uint64_t per n, poi seguono n elementi dati)
0x9farray, seguono elementi dati, terminato da "break"
0xa0..0xb7mappa (seguono 0x00..0x17 coppie di elementi dati)
0xb8mappa (un uint8_t di un byte per n, poi seguono n coppie di elementi dati)
0xb9mappa (due byte uint16_t per n, poi seguono n coppie di elementi dati)
0xbamappa (quattro byte uint32_t per n, poi seguono n coppie di elementi dati)
0xbbmappa (otto byte uint64_t per n, poi seguono n coppie di elementi dati)
0xbfmappa, seguono coppie di elementi dati, terminata da "break"
0xc0Data/ora basata su testo (segue un elemento dati; vedere la Sezione 2.4.1)
0xc1Data/ora basata su epoch (segue un elemento dati; vedere la Sezione 2.4.1)
0xc2Bignum positivo (segue l'elemento dati "stringa di byte")
0xc3Bignum negativo (segue l'elemento dati "stringa di byte")
0xc4Frazione decimale (segue l'elemento dati "array"; vedere la Sezione 2.4.3)
0xc5Bigfloat (segue l'elemento dati "array"; vedere la Sezione 2.4.3)
0xc6..0xd4(elemento con tag)
0xd5..0xd7Conversione prevista (segue un elemento dati; vedere la Sezione 2.4.4.2)
0xd8..0xdb(altri elementi con tag, seguono 1/2/4/8 byte e poi un elemento dati)
0xe0..0xf3(valore simple)
0xf4False
0xf5True
0xf6Null
0xf7Undefined
0xf8(valore simple, segue un byte)
0xf9Float a metà precisione (IEEE 754 a due byte)
0xfaFloat a precisione singola (IEEE 754 a quattro byte)
0xfbFloat a doppia precisione (IEEE 754 a otto byte)
0xffcodice di arresto "break"

Tabella 5: Jump Table per il byte iniziale