首页 > 其他 > 详细

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

时间:2015-01-01 18:33:34      阅读:300      评论:0      收藏: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;
}


 

 

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

原文:http://blog.csdn.net/robinsongsog/article/details/42320151

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!