首页 理论教育 数据格式及变长无符号整数编码规则解析

数据格式及变长无符号整数编码规则解析

时间:2023-06-30 理论教育 版权反馈
【摘要】:表3-7数据类型格式定义多字节整数值的网络传输次序是高字节优先。为使数据单元格式尽可能小,使用可变长无符号整数编码来规定长度。无符号整数越大,相应的编码越大。每一个可变长无符号整数的字节都由1个连续位和7个负荷位组成。在对较大的无符号整数进行编码时,按7位划分并分别放入各字节的负荷中。图3-10可变长无符号整数编码格式在数据单元格式的描述中,数据类型uintvar用来指示变量长度的整数字段。

数据格式及变长无符号整数编码规则解析

1.WSP数据类型格式定义

表3-7为WSP数据类型格式定义。

表3-7 数据类型格式定义

多字节整数值的网络传输次序是高字节优先。换句话说,最高有效字节在网络中优先传输,随后是较低有效字节。一个字节中各二进制位的传输次序也是高字节优先。换句话说,最先描述的数据位放置在最高有效位上并在网络中优先传输,随后是较低有效位。

2.可变长无符号整数

数据单元格式中的一些字段是可变长的,特别要注意的是有一个字段规定了可变长字段的大小。为使数据单元格式尽可能小,使用可变长无符号整数编码来规定长度。无符号整数越大,相应的编码越大。每一个可变长无符号整数的字节都由1个连续位和7个负荷位(payload)组成。(www.xing528.com)

在对较大的无符号整数进行编码时,按7位划分并分别放入各字节的负荷中。最高有效位放在第一个字节中,最低有效位放于最后一个字节中。除最后一个字节外,所有字节的连续位置1,而最后一个字节的连续位置0。

如图3-10所示,数值0x87A5(1000 0111 1010 0101)的编码放在3个字节中。

采用这种编码方式,编码值的最后一个字节的值小于0x80,第一个字节的值大于0x80,其余字节的值大于等于0x80。

图3-10 可变长无符号整数编码格式

在数据单元格式的描述中,数据类型uintvar用来指示变量长度的整数字段。一个uintvar的最大位数为32位,它的编码不超过5字节。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈