endian

来源:互联网 发布:ug中心钻编程 编辑:程序博客网 时间:2024/05/19 13:25


1、what is the address of a multiple data?

  the smallest 

0 1 2 3  4 5 6 7 8  0 1 2 3 4 5 6 7 8 

-----------------------------------------------

-----------------------------------------------



#include <stdio.h>
 
int main()
{
int a[2];
if (&a[0] < &a[1]) printf("that's right !\n");
struct test{
unsigned ui;
unsigned char x[4];
}o_o;
if ((unsigned)&o_o.ui < (unsigned)&o_o.x[0]) printf("that's right!\n");
  return 0;
}


2、what is the endian?

 



#include <stdio.h>
 
char endian(void)
{
int i = ~0 - 1;
return *(unsigned char *)&i==0xfe ? 'L' : 'B';
}


char int_endian(void){
int i = ~0 - 1;
return *(char *)&i == -2 ?  'L' : 'B';
}


int main()
{
endian()=='L' ? printf("little endian\n") : printf("big endian\n");
int_endian()=='L' ? printf("little endian\n" ) : printf("big endian\n");
return 0;
}


3、what is used the int constant  ?

oct: 0xxxxxxxxxxx+UL

hex: 0xffffffffffffffffff+ UL

dec: ---> +/-

 
#include <stdio.h>
int main()
{
int i = 0x12345678U;
printf("%x\n", i);
return 0;
}

原创粉丝点击