加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

怎么确认一台电脑是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; }


 

 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读