Skip to main content

Appendix B. Jump Table

For brevity, this jump table does not show initial bytes that are reserved for future extension. It also only shows a selection of the initial bytes that can be used for optional features. (All unsigned integers are in network byte order.)

ByteStructure/Semantics
0x00..0x17Integer 0x00..0x17 (0..23)
0x18Unsigned integer (one-byte uint8_t follows)
0x19Unsigned integer (two-byte uint16_t follows)
0x1aUnsigned integer (four-byte uint32_t follows)
0x1bUnsigned integer (eight-byte uint64_t follows)
0x20..0x37Negative integer -1-0x00..-1-0x17 (-1..-24)
0x38Negative integer -1-n (one-byte uint8_t for n follows)
0x39Negative integer -1-n (two-byte uint16_t for n follows)
0x3aNegative integer -1-n (four-byte uint32_t for n follows)
0x3bNegative integer -1-n (eight-byte uint64_t for n follows)
0x40..0x57byte string (0x00..0x17 bytes follow)
0x58byte string (one-byte uint8_t for n, and then n bytes follow)
0x59byte string (two-byte uint16_t for n, and then n bytes follow)
0x5abyte string (four-byte uint32_t for n, and then n bytes follow)
0x5bbyte string (eight-byte uint64_t for n, and then n bytes follow)
0x5fbyte string, byte strings follow, terminated by "break"
0x60..0x77UTF-8 string (0x00..0x17 bytes follow)
0x78UTF-8 string (one-byte uint8_t for n, and then n bytes follow)
0x79UTF-8 string (two-byte uint16_t for n, and then n bytes follow)
0x7aUTF-8 string (four-byte uint32_t for n, and then n bytes follow)
0x7bUTF-8 string (eight-byte uint64_t for n, and then n bytes follow)
0x7fUTF-8 string, UTF-8 strings follow, terminated by "break"
0x80..0x97array (0x00..0x17 data items follow)
0x98array (one-byte uint8_t for n, and then n data items follow)
0x99array (two-byte uint16_t for n, and then n data items follow)
0x9aarray (four-byte uint32_t for n, and then n data items follow)
0x9barray (eight-byte uint64_t for n, and then n data items follow)
0x9farray, data items follow, terminated by "break"
0xa0..0xb7map (0x00..0x17 pairs of data items follow)
0xb8map (one-byte uint8_t for n, and then n pairs of data items follow)
0xb9map (two-byte uint16_t for n, and then n pairs of data items follow)
0xbamap (four-byte uint32_t for n, and then n pairs of data items follow)
0xbbmap (eight-byte uint64_t for n, and then n pairs of data items follow)
0xbfmap, pairs of data items follow, terminated by "break"
0xc0Text-based date/time (data item follows; see Section 2.4.1)
0xc1Epoch-based date/time (data item follows; see Section 2.4.1)
0xc2Positive bignum (data item "byte string" follows)
0xc3Negative bignum (data item "byte string" follows)
0xc4Decimal Fraction (data item "array" follows; see Section 2.4.3)
0xc5Bigfloat (data item "array" follows; see Section 2.4.3)
0xc6..0xd4(tagged item)
0xd5..0xd7Expected Conversion (data item follows; see Section 2.4.4.2)
0xd8..0xdb(more tagged items, 1/2/4/8 bytes and then a data item follow)
0xe0..0xf3(simple value)
0xf4False
0xf5True
0xf6Null
0xf7Undefined
0xf8(simple value, one byte follows)
0xf9Half-Precision Float (two-byte IEEE 754)
0xfaSingle-Precision Float (four-byte IEEE 754)
0xfbDouble-Precision Float (eight-byte IEEE 754)
0xff"break" stop code

Table 5: Jump Table for Initial Byte