什么是motorola序,Intel序?

什么是motorola序,Intel序?

与大小端是一个概念吗?

不是的,相似但是描述的不是一个层级的概念。
我们先定义如下:
LSB/MSB:分别代表最低/最高有效字节Bytes.
lsb/msb:分别代表最低/最高有效bit.

大小端:描述的是,当存储多字节的数据时,LSB或者MSB位于内存的什么位置。
Motorola/Inter序:描述的是,当一个数据跨多个字节时,lsb或者msb位于哪个字节的哪个bit.

注意理解这两对概念所在层级。

一句话区分概念

大端:多字节的最低地址处存放MSB。
小端:多字节的最低地址处存放LSB。

Motorola序:msb位于低字节的高有效位。
Intel序:msb位于高字节的高有效位。

举个例子

Motorola/Intel序是汽车行业中经常遇到的概念,经常在查阅DBC时看到,下图是一个CAN报文的layout.
什么是motorola序,Intel序?

以其中的数据项ACCDetObj2LongRltvSpd为例,这个数据项的长度为12个bit,跨了Byte0和Byte1两个字节。如果ACCDetObj2LongRltvSpd值为0x65A:
motorola序下各bit的值:
|------Byte0-----|------Byte1-----|
|bit7---------bit0|bit7---------bit0|
|0|1|1|0|0|1|0|1|1|0|1|0|

Intel序下各bit的值:

|------Byte0-----|------Byte1-----|
|bit7---------bit0|bit7---------bit0|
|0|1|0|1|1|0|1|0|0|1|1|0|

如果一个数据项并没有跨字节,这两者无区别。

上一篇:review-exp8-文件系统的使用


下一篇:AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(一)