附录 B. 跳转表 (Jump Table)
为了简洁, 本跳转表不显示为将来扩展而保留的初始字节. 它也只显示了可用于可选特性的初始字节中的一部分. (所有无符号整数均为网络字节序.)
| 字节 | 结构/语义 |
|---|---|
| 0x00..0x17 | 整数 0x00..0x17 (0..23) |
| 0x18 | 无符号整数 (后跟一字节 uint8_t) |
| 0x19 | 无符号整数 (后跟两字节 uint16_t) |
| 0x1a | 无符号整数 (后跟四字节 uint32_t) |
| 0x1b | 无符号整数 (后跟八字节 uint64_t) |
| 0x20..0x37 | 负整数 -1-0x00..-1-0x17 (-1..-24) |
| 0x38 | 负整数 -1-n (后跟表示 n 的一字节 uint8_t) |
| 0x39 | 负整数 -1-n (后跟表示 n 的两字节 uint16_t) |
| 0x3a | 负整数 -1-n (后跟表示 n 的四字节 uint32_t) |
| 0x3b | 负整数 -1-n (后跟表示 n 的八字节 uint64_t) |
| 0x40..0x57 | 字节串 (后跟 0x00..0x17 字节) |
| 0x58 | 字节串 (后跟表示 n 的一字节 uint8_t, 然后是 n 字节) |
| 0x59 | 字节串 (后跟表示 n 的两字节 uint16_t, 然后是 n 字节) |
| 0x5a | 字节串 (后跟表示 n 的四字节 uint32_t, 然后是 n 字节) |
| 0x5b | 字节串 (后跟表示 n 的八字节 uint64_t, 然后是 n 字节) |
| 0x5f | 字节串, 后跟若干字节串, 以 "break" 终止 |
| 0x60..0x77 | UTF-8 串 (后跟 0x00..0x17 字节) |
| 0x78 | UTF-8 串 (后跟表示 n 的一字节 uint8_t, 然后是 n 字节) |
| 0x79 | UTF-8 串 (后跟表示 n 的两字节 uint16_t, 然后是 n 字节) |
| 0x7a | UTF-8 串 (后跟表示 n 的四字节 uint32_t, 然后是 n 字节) |
| 0x7b | UTF-8 串 (后跟表示 n 的八字节 uint64_t, 然后是 n 字节) |
| 0x7f | UTF-8 串, 后跟若干 UTF-8 串, 以 "break" 终止 |
| 0x80..0x97 | 数组 (后跟 0x00..0x17 个数据项) |
| 0x98 | 数组 (后跟表示 n 的一字节 uint8_t, 然后是 n 个数据项) |
| 0x99 | 数组 (后跟表示 n 的两字节 uint16_t, 然后是 n 个数据项) |
| 0x9a | 数组 (后跟表示 n 的四字节 uint32_t, 然后是 n 个数据项) |
| 0x9b | 数组 (后跟表示 n 的八字节 uint64_t, 然后是 n 个数据项) |
| 0x9f | 数组, 后跟若干数据项, 以 "break" 终止 |
| 0xa0..0xb7 | 映射 (后跟 0x00..0x17 对数据项) |
| 0xb8 | 映射 (后跟表示 n 的一字节 uint8_t, 然后是 n 对数据项) |
| 0xb9 | 映射 (后跟表示 n 的两字节 uint16_t, 然后是 n 对数据项) |
| 0xba | 映射 (后跟表示 n 的四字节 uint32_t, 然后是 n 对数据项) |
| 0xbb | 映射 (后跟表示 n 的八字节 uint64_t, 然后是 n 对数据项) |
| 0xbf | 映射, 后跟若干对数据项, 以 "break" 终止 |
| 0xc0 | 基于文本的日期/时间 (后跟数据项; 见第 2.4.1 节) |
| 0xc1 | 基于纪元的日期/时间 (后跟数据项; 见第 2.4.1 节) |
| 0xc2 | 正大数 (后跟数据项 "字节串") |
| 0xc3 | 负大数 (后跟数据项 "字节串") |
| 0xc4 | 十进制小数 (后跟数据项 "数组"; 见第 2.4.3 节) |
| 0xc5 | 大浮点数 (后跟数据项 "数组"; 见第 2.4.3 节) |
| 0xc6..0xd4 | (带标签的数据项) |
| 0xd5..0xd7 | 预期转换 (后跟数据项; 见第 2.4.4.2 节) |
| 0xd8..0xdb | (更多带标签的数据项, 后跟 1/2/4/8 字节, 然后是一个数据项) |
| 0xe0..0xf3 | (简单值) |
| 0xf4 | 假 (False) |
| 0xf5 | 真 (True) |
| 0xf6 | 空 (Null) |
| 0xf7 | 未定义值 (Undefined) |
| 0xf8 | (简单值, 后跟一个字节) |
| 0xf9 | 半精度浮点数 (两字节 IEEE 754) |
| 0xfa | 单精度浮点数 (四字节 IEEE 754) |
| 0xfb | 双精度浮点数 (八字节 IEEE 754) |
| 0xff | "break" 停止码 |
表 5: 初始字节跳转表