C 大端存储与小端存储
大小端
内存地址的排列方式是从小到大的;使用VisualStudio新建main.c,键入以下代码:
#include <stdio.h>
int main() {
//查看变量a的存储方式
//使用十六进制表示法声明一个变量a
int a = 0x1234;
printf("a address is:%p\n", &a);
return 0;
}
在最后一行打上断点,在调试-->窗口-->内存,菜单中随便选择一个内存;在下方地址栏输入&a
可以看到a变量存储在地址0x0000004DE7AFF834处,变量a的地址范围在:0x0000004DE7AFF834~0x0000004DE7AFF838(因为整型占四字节),但通常以最小地址作为变量的地址。
题外话:回忆进制、内存的知识
右侧存储变量a的值:34 12 00 00
这里每一个数字都是十六进制,因为4个二进制可以对应一个16进制:1111(b) 是15 ,f(0)是15,所以后来常用一位16进制数代替4位二进制数;
又因为计算机中处理字节是内存管理的最小单元所以34存储在一个内存单元上,12存储在一个内存单元上。
小端存储
以上这种 地址在增大的过程中,先存低有效位、再存高有效位,就称为“小端存储”。--我的理解:开头存储的是低位有效位
大端存储
与小端存储相反,先存高有效位、再存低有效位,称为“大端存储”。--这与我们日常阅读习惯一致。

浙公网安备 33010602011771号