怎么确认一台电脑是big-endian 还是little-endian?
发布时间:2020-12-13 20:11:18 所属栏目:PHP教程 来源:网络整理
导读:假定我们使用的是1台32位机器。 如果是little endian,那末x在内存中是之样排列的 高内存 ---- +----+----+----+----+ |0x01|0x00|0x00|0x00| +----+----+----+----+ A | x所以 (char*)(*x) == 1 如果是big endian,它将会是这个模样 高内存 ---- +----+----+
假定我们使用的是1台32位机器。 如果是little endian,那末x在内存中是之样排列的
高内存
---->
+----+----+----+----+
|0x01|0x00|0x00|0x00|
+----+----+----+----+
A
|
&x
所以 (char*)(*x) == 1
如果是big endian,它将会是这个模样 高内存
---->
+----+----+----+----+
|0x00|0x00|0x00|0x01|
+----+----+----+----+
A
|
&x
所以 (char*)(*x) == 0
#include <stdio.h>
#include <stdint.h>
int is_big_endian(void)
{
union {
uint32_t i;
char c[4];
} e = {0x10000000};
return e.c[0];
}
int main(void)
{
printf("System is %s -endian.
",is_big_endian() ? "big" : "little");
return 0;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |