2021-04-28

C语言判断计算机大小端存储问题
大端存储:低字节放在高地址的位置,高字节放在低地址的位置
小端存储:低字节放在低地址的位置,高字节放在高地址的位置

第一种判断方式:用指针的方式来判断
int在内存中占四个字节 char一次访问一个字节
比如说我们存一个1
如果是小端的话在内存中就是0x01000000
如果是大端的话在内存中就是0x00000001
我们只要判断用
char访问的是01还是00就可以判断是大端还是小端

int a=1;
int b=(*char)&a;
if b为1则是小端 else则是大端

第二种判断方式:用联合体来判断
联合体在内存中开辟的空间是联合体内部元素共用的,为了节省空间。
假如联合体内部有char 有int ,则开辟一个int空间,4个字节,高地址处放char,整体可以放int,不可以共存。
代码如下
union un
{
int i;
char c;
};
un i=1;
printf("%d",un.c);
if b为1则是小端 else则是大端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值