本文最后更新于510 天前,其中的信息可能已经过时,如有错误请发送邮件到mapleleaf2333@gmail.com
大小端字节序
字节序:超过一个字节的数据类型在内存中存储的顺序
- 大端字节序(Big Endian):高位字节数据存放在内存低地址处,低位字节数据存放在内存高地址处。符合人类正常理解和写数值的方式。
- 小端字节序(Little Endian):高位字节数据存放在内存高地址处,低位数据存放在内存低地址处。
举例而言:int型数据12345678用一个字节表示不了,需要用到4个字节,也就有了字节序的问题
各自使用场景
计算机正常的内存增长方式是从低到高(当然栈不是),取数据方式是从基址根据偏移找到他们的位置。
- 小端字节序:第一个字节是它的低位,符号位在最后一个字节,这样在做数值四则运算时,从低位每次取出相应字节运算,最后直到高位,并且最终把符号位刷新,这样的运算方式会更高效(计算机电路也是先处理低位字节)
- 大端字节序:大端存储因为第一个字节就是高位,从而很容易知道它是正数还是负数,对于一些数值判断会很迅速。
不同处理器可能用不同的字节序,但除了计算机的内部处理,其他的场合几乎都是大端字节序,比如网络传输和文件储存。