Litter endian/Big endian

Litter endian/Big endian

 

 

little endian 低字节存放在内存地址的低位, 高字节存放在地址高位

big endian  低字节存放在内存地址的高位, 高字节存放在地址低位

 

  以下是判断字节存储顺序的可移植的C语言代码:


/********************************************************************


        created:       2006-9-5


        filename:      test.cpp


        author:       
李创


       


        purpose:      
可移植的用于判断存储格式是


                little endian
还是big ednianC代码


                
取自<<C: A Reference Manual>>


*********************************************************************/




#include <stdio.h>




union


{


        long Long;


        char Char[sizeof(long)];


}u;




int main()


{      


        u.Long = 1;


       


        if (u.Char[0] == 1)   


        {


               printf("Little Endian!/n");


        }


        else if (u.Char[sizeof(long) - 1] == 1)


        {


               printf("Big Endian!/n");


        }


        else


        {


               printf("Unknown Addressing!/n");


        }




    printf("Now, Let's look at every byte in the memory!/n");


    for (int i = 0; i < sizeof(long); ++i)


    {


        printf("[%x] = %x/n", &u.Char, u.Char);


    }




        return 0;


}

 

你可能感兴趣的:(c,存储,语言)