Version: 0.0.3 00000000 0x00 0 Null 00000001 0x01 00000010 0x02 00000011 0x03 000001xx 0x04-0x07 - Integer; uint(2^(x+3))_t; bytes=2^x; bits=2^(x+3); max=(2^(2^(x+3)))-1 2^(x+3) == 8*2^x 00000100 0x04 1 uint8_t 00000101 0x05 2 uint16_t 00000110 0x06 4 uint32_t 00000111 0x07 8 uint64_t 000010xx 0x08-0x0b - Signed integer; Two's complement; int(2^(x+3))_t 00001000 0x08 1 int8_t 00001001 0x09 2 int16_t 00001010 0x0a 4 int32_t 00001011 0x0b 8 int64_t 00001100 0x0c 4 float; IEEE 754, Single precision 00001101 0x0d 8 double; IEEE 754, Double precision 00001110 0x0e 00001111 0x0f 00010000 0x10 0 Boolean False 00010001 0x11 0 Boolean True 00010010 0x12 00010011 0x13 00010100 0x14 00010101 0x15 - List start 00010110 0x16 - Dict start; flattened list of key:value pairs; key may be any type except null, list or dict 00010111 0x17 0 List|Dict end 00011000 0x18 00011001 0x19 00011010 0x1a 00011011 0x1b 00011100 0x1c 00011101 0x1d 00011110 0x1e 00100000 0x1f ... 00111111 0x3f 01xxxxxx 0x40-0x7f x bytestring; binary blob of size x bytes (0-63 bytes, no null termination.) 10xxxxxx 0x80-0xbf x UTF-8 encoded string; binary blob of size x bytes (0-63 bytes, no null termination.) 110000xx 0xc0-0xc3 n+x extended bytestring; the following integer uint(2^(x+3))_t specifies size in bytes 110001xx 0xc4-0xc7 n+x extended UTF-8 encoded string; the following integer uint(2^x)_t specifies size in bytes 11001000 0xc8 ... 11111111 0xff Comments: * 2015-12-10 Oddstr13 Any comments? *