zoukankan      html  css  js  c++  java
  • 数据报文解析中的高低位转换问题。

    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

  • 相关阅读:
    vm扩容
    手算二维离散傅里叶变换
    取消vim模式匹配的高亮
    DS DI ES SI等等
    int and Integer
    为什么超类能引用子类的对象
    voltile解析
    java集合
    疑问:无限定通配符
    layui table 导出
  • 原文地址:https://www.cnblogs.com/motion/p/15305394.html
Copyright © 2011-2022 走看看