整数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
-------------
栈顶(低地址) //此处为内存空间栈的低地址,人书写习按从左至右的习惯的位置是最左边,小端序存放的是从数据的低位开始,大端序存放的数据的高位开始
总结:
数位:人类习惯思维读写数字的方式,从左至右,从高到低。
内存中数据的读写:不同平台的计算机硬件存储数据的方式有不同。大端字节序,小端字节序。以小端序位为例,从低地址开始读写
大端序:按数位读法数据的高位在左,低位在右,内存中数据的读写是从低地址端到高地址端,数据的在内存中存放方式是按高位字节在左,低位在右,分别对应存放内存低地址端,内存高地址端,这种方式被理解为大端方式
小端序:按数位读法数据的高位在左,低位在右,内存中数据的读写是从低地址端到高地址端,数据的在内存中存放方式是按低位字节在左,高位在右,分别对应存放内存低地址端,内存高地址端,这种方式被理解为小端方式
网友评论