首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大本营还是小安迪安?

大本营还是小安迪安?
EN

Stack Overflow用户
提问于 2011-03-25 12:38:48
回答 2查看 5K关注 0票数 2

可能重复:

How to check whether a system is big endian or little endian?

如何知道机器使用的是大的还是小的?有我能写的代码吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-25 12:45:46

下面的代码会给你答案。

代码语言:javascript
复制
#include <stdio.h>

int main() {
  long x = 0x44434241;
  char *y = (char *) &x;

  if(strncmp(y,"ABCD",4)){
   printf("Big Endian\n");
  }else{
   printf("little Endian\n");
  }
}

解释

little endian中,4个字节被存储为[4th, 3rd , 2nd, 1st]0x41A0x42B等等。这个字节串被解释为字符串,我们使用strncpy确定字节在机器中的实际排列方式,并确定它的little or big endian

票数 3
EN

Stack Overflow用户

发布于 2011-03-25 12:54:51

代码语言:javascript
复制
int main()
{
  unsigned int i = 0x12345678; // assuming int is 4 bytes.
  unsigned char* pc = (unsigned char*) &i;

  if (*pc == 0x12)
    printf("Big Endian. i = 0x%x, *pc = 0x%x\n", i, *pc);
  else if (*pc == 0x78)
    printf("Little Endian. i = 0x%x, *pc = 0x%x\n", i, *pc);

  return 0;
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5432515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档