PowerWind

网络管理和高校信息化

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

名企笔试之大小端判断

Posted on 2011-06-25 13:20  PowerWind  阅读(332)  评论(0)    收藏  举报

大小端判断:

#include <stdio.h>

int is_little_endian(void)
{
  unsigned short flag = 0x1234;
 
  if(*(unsigned char *)&flag == 0x34)
    return 1;
  else
    return 0; 
}

int main(int argc, char* argv[])
{
 union endian_un
{
 short var;
 char bits[sizeof(short)];
};

 union endian_un flag;
 flag.var = 0x0102;

 if(sizeof(short) == 2)
  {
   if(flag.bits[0] == 1 && flag.bits[1] == 2)
     printf("Judged by the first method,big_endian\n");
   else if(flag.bits[0] == 2 && flag.bits[1] == 1)
     printf("Judged by the first method,little_endian\n");
   else
     printf("Cann't judged the digtal\n");
  }
 
  if(is_little_endian())
    printf("Juged by the second method ,little_endian\n");
   else
    printf("Juged by the second method,big_endian\n");

 return 0;
}