简单的代码实现大小端的判断

 

    大小端模式这个不用说了,C面试题或者考官也会经常问到。打比方说,0x1278这个数据存在内存中。在小端模式下,数据的低字节 78  存在内存的低地址中,而高字节  12  存在内存的高地址中。而大端模式刚好反过来。

    有时候面试题会出些写个代码来判断当前的机器是啥模式?我看到不少的别人写的代码,有些会让人不太好理解,特别是假如刚入门的。下面是我着手写的一个,这种形式反而更加容易理解些:

     int   main()

    {    

    unsigned short int aa=0x0102;     //short  int  是两个字节,这样的话01  和  02分别占用一个字节
    unsigned char ch;      //char   类型只占一个字节
    ch=*(&aa);        //&aa就是取这个变量的首地址,然后再将这个首地址的内容赋给ch
    ch=ch+'a';        //因为 字符和int类型有数值上的差异,得加上个'a',这个随便自己定义
    if('c'==ch)      //如果是小端模式,低地址存放的是低字节(02),那么这里就是字符'a'加上  02  ,对应的就是 'c'

              {

      printf("small  \n");

    }

        else

     {

      printf("big   \n");

    }

    return 0;

    }

 

posted @ 2021-02-01 00:02  田大叔  阅读(545)  评论(0)    收藏  举报