您的位置:首页 > 其它

整型值和字符数组在内存中存储方式

2013-04-08 19:10 162 查看
void printf_buf(char *str_par,char *data_par,short len_par)

{

short i;

printf("%s ",str_par);

for(i=0;i<len_par;i++)

printf("%02x ",*(data_par+i));

printf("\n");

}

int main()

{

unsigned short a = 0x55aa;

char src[2];

char sdst[2];

short idst =0;

short *ptr = NULL;

unsigned char b;

b=a;

printf("1b=%x\n",b);

b = a>>7;

printf("2b=%x\n",b);

printf("\n");

printf("1a=%x\n",a);

memcpy(sdst,(void*)&a,2);

printf_buf("2sdst:",sdst,2);

src[0] = 0x12;

src[1] = 0x34;

ptr =(short *) src;

printf("3ptr=%x\n",*ptr);

printf_buf("4src:",src,2);

memcpy(sdst,src,2);

printf_buf("5sdst:",sdst,2);

memcpy((void *)&idst,src,2);

printf("6idst=%x\n",idst);

memcpy(sdst,(void*)&idst,2);

printf_buf("7sdst::",sdst,2);

src[0] = 0x12;

src[1] = 0x34;

idst = src[0];

idst<<=8;

idst += src[1];

printf("8idst = %x\n",idst);

memcpy(&idst, src, 2);

printf("9idst2 = %x\n",idst);

return 0;

}

输出结果:

1b=aa

2b=ab

1a=55aa

2sdst: ffffffaa 55

3ptr=3412

4src: 12 34

5sdst: 12 34

6idst=3412

7sdst:: 12 34

8idst = 1234

9idst2 = 3412
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: