大小端存储 --CAN 报文信号编码规则 intel & motorola

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大小端存储 --CAN 报文信号编码规则 intel & motorola相关的知识,希望对你有一定的参考价值。

参考技术A 英特尔和摩托罗拉 对应两种存储结构

传统的can报文,

8个字节的顺序 是byte0 byte1 byte2 byte3 byte4 byte5 byte6 byte7

单个字节里面的位的顺序 bit7 bit6------bit0

举例子 传统的intel格式  比如一个can信息 startByte=0  ByteLenth=2  startBit=0,bitLenth=16.

偏移量 =0,系数=1,实际数据 为 0x12 0x34,

那么实际的数值计算为     0x34左移两个字节,然后加上0x12

或者可以理解成  0x34 *256+0x12

相同的数据,Int 强转 Byte 竟然出现了不同的结果!这背后到底隐藏了什么秘密 —— 数据大小端存储


  在应用开发中,经常会用到基本类型相互转换的场景, 你是否在一直用的是强转方式进行 Int 转 Byte ?而且至今没发现有什么不妥!

byte b = (byte) a Int // int 强转 byte

  没毛病,在小型单一应用开发中,纯语言开发,一切正常;

  在大型应用组件跨语言交互时,这个方式可能就不奏效了,十有八九会出现不同的结果!

单一语境 & 多语境 下 Int 与 Byte 互转

  在单一的语境中,语言会默认采取一种机制去进行转换。

  Int 转 Byte 在 Java 中,默认为大端转换C \\C ++、Go 中默认小端转换在单一语境中由于

以上是关于大小端存储 --CAN 报文信号编码规则 intel & motorola的主要内容,如果未能解决你的问题,请参考以下文章

CAN 总线 之六 BOSCH CAN 比特位填充(编码规则)归零编码(RZ)和不归零编码(NRZ)

HTTP报文

Capl编程xml标签语法 —— CAN报文周期检测/错误帧检测/信号改变检测。。。

CANoe中XML编程常用标签语法 ——CAN报文周期检测/错误帧检测/信号改变检测。。。

CANoe中XML编程常用标签语法 ——CAN报文周期检测/错误帧检测/信号改变检测。。。

loadrunner11 设置发送报文编码格式