首页 > 其他分享 >判断机器是【小段字节序】还是【大端字节序】

判断机器是【小段字节序】还是【大端字节序】

时间:2024-01-24 19:32:08浏览次数:23  
标签:小端 判断 机器 字节 int char 内存 printf

字节序被分为两类:

1. Big-Endian(大端):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。

2.Little-Endian(小端):低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。


我们可以利用这2个代码来判断我们的机器是哪一种存储方式(第一个更简洁,第二个则更容易理解里面发生了什么):

#include <stdio.h>

int Check_sys()
{
  int i = 1;
  
  return (*(char*)&i);
}
int main()
{
	int ret = Check_sys();
  
  if(ret)
  {
    printf("小端\n");
  }
  else
  {
    printf("大端\n");
  }
  
	return 0;
}
#include <stdio.h>

int main()
{
	int i = 0;
	char* p = NULL;

	i = 0x11223344;
	p = (char*) & i;

	if (*p == 0x11)
	{
		printf("该机器是大端字节序\n");
	}
	else if (*p == 0x44)
	{
		printf("该机器是小端字节序\n");
	}
	else
	{
		printf("代码有误,请修改代码再进行判断\n");
	}

	return 0;
}


标签:小端,判断,机器,字节,int,char,内存,printf
From: https://blog.51cto.com/u_16509575/9401341

相关文章