cpu 是big-endian 还是 Little-endian的?

int main(void)
{
      short int a = 0x1234;
      char *p = (char *)&a;
   
      printf('p=%#hhx//n',*p);

      if(*p == 0x34)
          printf('Little endian //n');
      else if(*p == 0x12)
          printf('Big endian //n');
      else
          printf('Unknow endian //n');

      return 0;
}

 

#define BSWAP_16(x) /
       (u16) ( ((((u16)(x)) & 0x00ff) << 8 ) | /
                   ((((u16)(x)) & 0xff00) >> 8 ) /
            )

 

#define BSWAP_32(x) /
       (u32) ( (( ((u32)(x)) & 0xff000000 ) >> 24) | /
                      (( ((u32)(x)) & 0x00ff0000 ) >> 8 ) | /
       (( ((u32)(x)) & 0x0000ff00 ) << 8 ) | /
       (( ((u32)(x)) & 0x000000ff ) << 24) /
                )

你可能感兴趣的:(cpu 是big-endian 还是 Little-endian的?)