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


    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

  • 相关阅读:
    MOSS 之 自定义MembershipProvider实现Forms方式验证——学习实战篇
    (转)jquery.validate全攻略
    LinQ To Entity的增删改查(转)
    如何将程序集(.dll文件)添加到GAC(全局程序集缓存)?
    CSS Sprites (转)
    如何查看MOSS未知错误?
    用.Net开发Windows服务初探(转)
    早该知道的7个JavaScript技巧(转)
    最容易犯的13个JavaScript错误——转
    jQuery插件开发全解析(转)
  • 原文地址:https://www.cnblogs.com/motion/p/15305394.html
Copyright © 2020-2023  润新知