您的位置:首页 > 其它

判断Big Endian 和 Little Endian

2014-01-23 15:10 465 查看
【来源】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");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c