码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-01-01 18:36:36      阅读:132      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!