操作系统多字节数据的存储方式--字节序(大端序、小端序)

文章索引

  • 字节序
    • 大端序&小端序
      • 定义
      • 内存图解
    • 判断当前操作系统的字节序

字节序

所谓的字节序,就是电脑操作系统里面多字节数据的存储顺序,分为大端序和小端序两种。

大端序&小端序

定义

大端序:低字节存放高地址,高字节存放低地址。
小端序:低字节存放低地址,高字节存放高地址。

内存图解

这里以32位Ubuntu系统为例,一个int类型占4字节,共32位。
定义一个unsigned int类型的整数,并以16进制表示。

unsigned int n = 0x12345678

操作系统多字节数据的存储方式--字节序(大端序、小端序)_第1张图片
上图即为多字节数据以小端序方式存储的结果,存储的时候以字节为单位进行存储,每两个十六进制的数字即为一个字节,0x12在高字节,存放在高地址,0x78在低字节存放在低地址。
大端序就是在存数据的时候与小端序相反。

判断当前操作系统的字节序

以下是C语言代码的实现过程

#include

int main(int argc, char *argv[])
{
     
	int i = 0;
	unsigned int n = 0x12345678;
	unsigned char *p = NULL;
	p = (unsigned char *)&n;

	for(i = 0; i < 4; i++)
	{
     	
		printf("%#x\n", *(p + i));
	}

	return 0;
}

执行结果如下:

0x78
0x56
0x34
0x12

由结果判定,这是小端序。

你可能感兴趣的:(linux,操作系统,c语言)