前言
大端小端一直也是很困扰一些人的问题,到底怎么组合到底怎么使用。特别是在有次有个汽车领域的兄弟问问题的时候,关于大端小端我也一时间疑惑了,而且还有汽车报文中的intel和motorola类型的牵扯,后来仔细想了想,发现就是俩不同的名字,其实含义是相同的。
背景
据说关于大小端还有些比较有趣的故事,什么吃煮鸡蛋先砸哪头的故事,有兴趣的朋友可以自己去搜下。
概念
大端模式,即motorola类型,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。这种方式更适合我们的阅读模式。
小端模式,即Intel 类型 ,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。
图解
用数据0x1234ABCD 来做演示,首先,这个数据的最高位是12 最低位是CD。
地址 | 0000 | 0001 | 0002 | 0003 |
---|---|---|---|---|
大端 | 12 | 34 | AB | CD |
小端 | CD | AB | 34 | 12 |
所以在实际看数据的时候,我们通常会认为从左向右读,所以说大端适合我们阅读出来。