大小端模式
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内容,判断方法一样
以上是关于大小端模式的主要内容,如果未能解决你的问题,请参考以下文章