判断Big Endian 和 Little Endian

【来源】http://www.meilei007.cn/endian/

Big Endian是按照非传统思维方式来存储数据,比方说,0x1234, 内存低位先存储数据的高位0x12, 再到下一个高位地址空间存储数据的低位0x34。每一个内存空间里面是按照Little Endian的方式来存储的不存在大小端。



Little Endian恰好相反,对于0x1234,内存低位先存储数据低位0x34,再到下一个高位地址空间存储数据高位0x12。


有一个口诀可以记住,Little Endian是正常存储,低低高高,低位存在低位,高位存在高位。


写了一个的简单算法来判断本机大小端情况:
#include <stdio.h>
#include  <stdbool.h>
bool isBigend()
{
int data = 0x1234;
char* test = (char*)data;
return (test == 0x12);
}


void main()
{
if(isBigend())
printf("Big Endian!\n");
else
printf("Little Endian!\n");
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值