两种判断当前机器是大端储存还是小端存储(面试)

大端存储和小段存储介绍

大端存储:大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放。 2).小端存储:小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。

举个例子:定义一个整型变量a,赋值为1,用16进制表示为0x 00 00 00 01,若在计算机中为大端存储则为:00 00 00 01,小段存储则为:01 00 00 00

用指针访问内存的方法判断

代码:

int main()
{
	int a = 1;   //用16进制表示 0x 00 00 00 01
//低----------------------->高
	//大端存储00 00 00 01
	//小段储存01 00 00 00
	char* pc = (char*)&a;    //将a的地址强制转化为char*类型存储在指针*pc中,这样可以访问第一个字节的数据
	if (*pc == 1)
	{
		printf("当前计算机小端储存\n");
	}
	else
	{
		printf("当前计算机为大端储存\n");
	}
	return 0;
}

用联合体(共用体)共用内存一快空间的方法判断

1.首先介绍联合体共用内存

 2.联合共用内存判断大小端存储


union U
{
	char c;
	int i;
}u;
int main()
{
	u.i = 1;           //已经得知联合体中字符型和整型共用一块空间,将正整型赋值为1,低地址将会被共用
	                   //若为大端存储则为01 00 00 00
	                   //    小端存储则为00 00 00 01
	if (u.c == 1)
	{
		printf("当前机器是小端储存\n");
	}
	else
	{
		printf("当前机器是大端储存\n");
	}
	return 0;
}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爆裂突破手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值