用一个程序弄清你的计算机是大端还是小端存储

本文介绍了大端和小端存储的概念,详细解释了这两种不同的字节存储方式,并提供了具体的C语言实现方法来检测系统的存储类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、什么是大端(小端)存储?

(1)大端存储:数据的高字节放在内存的底地址处,低字节放在高地址处;
(2)小端存储:数据的高字节放在内存的高地址处,低字节放在低地址处。

二、具体实现方法

#include <stdio.h>
//封装check_sys函数判断计算机的大小端
int  check_sys1()  //方法一
{
	int a = 1 ;// 1的二进制转化成十六进制在内存中存
	           // 储为 0x 00 00 00 01
	char* p = (char* a)&a;
	if( *p == 1)
		return 1 ;//返回1表示为小端存储
	else
		return 0 ;//返回0表示大端存储          
)
int check_sys2()
{
	int a = 1 ;
	return *((char*p)&a);
}

1.实现原理:
我们利用1在内存中的存储为 0x 00 00 00 01(十六进制),
所以我们每次读取出一个字节的数据时,要么是1,要么是0。而我们又知道计算机在读取数据是是从低地址向高地址开始读取的,所以我们读出的0或1就是最低地址上的数据,从而进行判断。

int main()
{
	int ret = check_sys1();
	if(ret==1)
		printf("大端存储\n");
	else
		printf("小端存储\n");
}
	return 0 ;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值