当前位置 : 主页 > 编程语言 > c语言 >

字节序(大小端)

来源:互联网 收集:自由互联 发布时间:2023-08-29
一、字节序定义 字节序:讨论一个数据里,字节之间的排放顺序 (对于int型有4字节,则讨论这4者之间的排列顺序) 假设一个整数 int a=0x11223344 低地址————————————高地

一、字节序定义

字节序:讨论一个数据里,字节之间的排放顺序(对于int型有4字节,则讨论这4者之间的排列顺序)

假设一个整数 int a=0x11223344

低地址————————————>高地址

[ ][ ][ ][ ][ ][ ][11][22][33][44][ ][ ][ ][ ][ ][ ][ ][ ]     大端存储模式

[ ][ ][ ][ ][ ][ ][44][33][22][11][ ][ ][ ][ ][ ][ ][ ][ ]     小端存储模式

二、用代码判断大小端的两种方式

1.用char*型指针解引用int型数据

int main() {
	int a = 1; //0x00000001
	char* p = &a; //从a的首字节地址向后读取1字节,所以用char*
	if (*p == 0)
		printf("大端"); //00 00 00 01 ,读取的第一个字节为0
	if (*p == 1)
		printf("小端"); //01 00 00 00 ,读取的第一个字节为1

	return 0;
}

2.通过联合类型(共用体)判断

联合类型(共用体)链接

union Un {
	char a;
	int b;
}u; //联合体内定义的变量首字节地址相同

int main() {
	u.b = 1; //0x00000001
	if (u.a == 0)
		printf("大端"); //00 00 00 01 ,读取的第一个字节为0
	if (u.a == 1)
		printf("小端"); //01 00 00 00 ,读取的第一个字节为1
	return 0;
}


上一篇:C语言—操作符、常见关键字、指针 3
下一篇:没有了
网友评论