专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

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

发布时间:2011-06-28 16:16:31 文章来源:www.iduyao.cn 采编人员:星星草
请教:怎样把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楼的做法要看大小端,如果可以知道的话是效率最高的做法
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: