首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问:怎样把int16的两个相加变为 int32位的地址?

2012-03-05 
请教:怎样把int16的两个相加变为 int32位的地址??高地址u16 AdressH 和低地址u16 AdressL怎样相加存为u32

请教:怎样把int16的两个相加变为 int32位的地址??
高地址u16 AdressH 和低地址u16 AdressL怎样相加 存为u32的 ??

u32 WriteAddr

[解决办法]
short a = 1;
short b = 2;
int c = ((int)a<<16) + b;
printf("%x",c);
[解决办法]
定义一个uint_16 *p,取32位数的首地址,然后付给p,你就可以操作了
[解决办法]
1楼基本正解,不过类型要改成无符号的,不然如果a大于0x8000可能结果不正确
unsigned short a = 1;
unsigned short b = 2;
unsigned int c = ((int)a<<16) + b;
printf("%x",c);
3楼的做法要看大小端,如果可以知道的话是效率最高的做法

热点排行