大端存储与小端存储的存储方式

1766dd6eac74498bab5036dde191a39a.png

目录

1.小端存储方式的解释

2.大端存储方式的解释

3.百度笔试题--判断大端存储还是小端存储


小心!VS2022不可直接接触,否则!没这个必要,方源面色淡然一把抓住!顷刻炼化! 


1.小端存储方式的解释

小端存储就是将数据的低位字节内容保存在低地址处,而高位字节的内容保存在高地址处

例如:

a360d3fa6e6a41c6844add15b88f721b.png

如图,11为高位字节,将11存放在更高的地址处,这就属于高位字节存储在高地址处,属于小端存储


2.大端存储方式的解释

大端存储就是将数据的低位字节内容保存在高地址处,而高位字节的内容保存在低地址处

例如:

d318af145f45462d99b979654d4a4c8e.png

如图:将高位字节11放在低地址处,低位字节44放在高地址处,就属于小端存储


3.百度笔试题--判断大端存储还是小端存储

 题目:设计一个小程序,来判断档期当前机器是大端存储还是小端存储

代码(解法1)如下:

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
void howin(void* a) {
	if (*(char*)a == 1) {
		//如果为1,说明取出的是01,说明01存在地址较小的地址,属于低位字节存储在低地址,属于小端存储
		printf("小端存储\n");
	}
	else {
		printf("大端存储\n");
	}
}
int main()
{	
	int a = 1;
	//十六进制0x00000001
	howin(&a);
	return 0;

}

代码(解法2)如下:

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
int howin() {
	union {
		char a;
		int b;
		//创建联合体un
	}un;
	//将 1 存储在联合体变量a中
	un.a = 1;
	//0x00000001
	return un.a;
	//返回一个字节(较小字节)的内容,如果返回值为1,说明为小段存储

}
int main()
{	
	printf("%d",howin());
	return 0;

}

8fdd48caf53e46a897fd8a5554dbb454.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值