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存储在一个内存单元上。

小端存储

以上这种 地址在增大的过程中,先存低有效位、再存高有效位,就称为“小端存储”。--我的理解:开头存储的是低位有效位

大端存储

与小端存储相反,先存高有效位、再存低有效位,称为“大端存储”。--这与我们日常阅读习惯一致

posted @ 2024-10-20 19:53  BigBosscyb  阅读(15)  评论(0)    收藏  举报