大小端理解

整数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
-------------

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容