大小端理解

2017-06-23  本文已影响25人  comyn_sheng

整数unsigned int value = 0x12345678
1、栈上分配一个unsigned char buf[4]
栈底(高地址) //此处为内存空间栈的高地址,人书写习按从左至右的习惯的位置是最右边

-------------   二进制位        小端序         大端序
buf[3]          //24~31        0x12          0x78
buf[2]          //16~23        0x23          0x56
buf[1]          //8~15         0x56          0x23
buf[0]          //0~7          0x78          0x12
-------------

栈顶(低地址) //此处为内存空间栈的低地址,人书写习按从左至右的习惯的位置是最左边,小端序存放的是从数据的低位开始,大端序存放的数据的高位开始

总结:
数位:人类习惯思维读写数字的方式,从左至右,从高到低。
内存中数据的读写:不同平台的计算机硬件存储数据的方式有不同。大端字节序,小端字节序。以小端序位为例,从低地址开始读写

大端序:按数位读法数据的高位在左,低位在右,内存中数据的读写是从低地址端到高地址端,数据的在内存中存放方式是按高位字节在左,低位在右,分别对应存放内存低地址端,内存高地址端,这种方式被理解为大端方式

小端序:按数位读法数据的高位在左,低位在右,内存中数据的读写是从低地址端到高地址端,数据的在内存中存放方式是按低位字节在左,高位在右,分别对应存放内存低地址端,内存高地址端,这种方式被理解为小端方式

上一篇 下一篇

猜你喜欢

热点阅读