当前位置: 代码迷 >> 综合 >> 怎么确认一台电脑是big-endian 还是little-endian?
  详细解决方案

怎么确认一台电脑是big-endian 还是little-endian?

热度:3   发布时间:2023-12-14 22:42:54.0

假设我们使用的是一台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.\n", is_big_endian() ? "big" : "little");return 0;
}