3、数据编码 数据编码的主要作用是标记当前数据占用多少连续字节,有两种方案: 1、固定位来定义字节长度(2位可以表示4字节) 一字节:00****** 二字节:01******,00****** 三字节:10******,01******,00****** 四字节:11******,10******,01******,00****** 五字节:使用2位不支持
每个字节的最高2位表示属于原始数据的第几个(从0开始),前面举例的3个字节可以表示为: 0x01 编码后二进制为 00-000001,最高2位为0,表示当前是编码后的数据的最后一个字节; 0x0101 编码后二进制为 01-000001--00-000001 解析时取每个字节的2位判断,若为00则表示一个编码数值结束。 因为前面2位固定用于标记字节数,每个字节实际可用范围只有6位,如果原数据位1000 0001,则最高两位的10需要再占用一个字节表示,最终编码为 01-000010--00-000001。 这种编码方式,所有字节有效位是固定的,编解码实现容易。缺点是4字节只有24位有效数据,假如原数据最大到25位,则每个字节分配3位来表示,不过这种大数据一般嵌入式很少使用。
|