数据报文解析中的高低位转换问题。

bit(比特)

为1数据位,取值 0或1;

byte(字节)

1字节8个bit ,一个byte表示无符号类型unsigned表示为0-255之间的值,表示有符号为-128-127。何为有符号类型,即可以表示为负数,0,正数,而无符号类型则仅表示为大于等于0的值

word(字)

在16位的系统中(比如8086微机) 1字 (word)= 2字节(byte)= 16(bit)
在32位的系统中(比如win32) 1字(word)= 4字节(byte)=32(bit)
在64位的系统中(比如win64)1字(word)= 8字节(byte)=64(bit)

 最小的内存块成为“字节”,储存的基本单位称为“字”。

最近做数据采集时,采集的16进制报文,流量占用数据区4个字节,其中低位在前,高位在后。

报文为: 

37 07 00 00

流量数据占用四个字节,这条数据只占用了2个字节,低位在前那么就是 37是低位,07是高位;

上面说了一个字节8个bit 那么2个字节就是16个bit  转换程二进制显示就是

00000000  00000000

二进制数据 从右到左依次是低位到高位,十进制也是这样 例如:86000 八万六 最高位是万位在最左侧。

37位低位,07是高位  分别将 16进制的 37 和07 转换为二进制数据

37----》 110111

07----》 111

按照高低位规则转换后得到二进制数据

00000111 00110111

将其转换为10进制数据得到 

1847

得到最终展示的数据1847.

 

一般一个16位(双字节)的数据,比如 FF1A  (16进制)
那么高位字节就是FF,低位是1A

如果是32位的数据,比如  3F68415B
高位字 是3F68
低位字是415B

 

posted @ 2021-09-17 17:24  宁静致远·TJ  阅读(2696)  评论(0编辑  收藏  举报