大小端模式

Posted jieruishu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大小端模式相关的知识,希望对你有一定的参考价值。

  https://www.cnblogs.com/little-white/p/3236548.html

一 大端模式就是高位存在低地址(看着顺序一致),例如0X1234,内存地址是0X4000的话,0x4000=0x12;0x4001=0x34;

大端模式一般存在网络协议和MODBUS(先发高字节再发低字节)等中,符号位的判定固定为第一个字节,容易判断正负;C51也是大端模式。

小端模式常存在于处理器中,如ARM中,强制转换数据不需要调整字节内容,如果要进行MODBUS打包数据则要进行高低字节交换。

#define BigtoLittle16(A)   (( ((uint16)(A) & 0xff00) >> 8) | (( (uint16)(A) & 0x00ff) << 8))或者用专门的汇编指令:
#define Little16toBig(A)  __REV16(A)

大小端的判断:可以用将16bit数据强制按字节访问低字节内容,如果等于高位字节值则为大端,否则小端
       或者用共用体union来访问16bit和8bit内容,判断方法一样



以上是关于大小端模式的主要内容,如果未能解决你的问题,请参考以下文章

大小端模式

为啥会有大小端模式之分呢?

CPU的大小端模式

C/C++ 关于大小端模式

大小端模式

大小端模式