判别系统大小端存储的方法及程序代码

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:24   2733   0

考虑一个16位整数,它由2个字节组成.内存中存储这两个字节有两种方法:一种是将低序字节存储在起始位置,称为小端字节序;另一种方法是将高序字节存储在起始地址,这称为大端字节序.

代码如下(摘自UNIX网络编程):

#include <stdio.h>

int main(){
 union{
  short s;
  char c[sizeof(short)];
 }un;
 un.s=0x0102;
 if(sizeof(short)==2){ 
  if(un.c[0]==1&&un.c[1]==2)
   printf("big-endian\n");
  else if(un.c[0]==2&&un.c[1]==1)
   printf("little-endian\n");
  else
   printf("unknown\n");
 } 
 else
  printf("sizeof(short)= %lu\n",sizeof(short));
}
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP