首页 > 代码库 > 如何将一个32位的高16位和低16位相加
如何将一个32位的高16位和低16位相加
有两种不错的方法可以实现该操作
方法一:利用移位操作可以很容易的实现
#include <stdio.h>
int main()
{
unsigned int a =0x11223344;
printf("%0x\n",(a>>16) +( a & 0xFFFF));
return 0;
}
方法二:利用结构体和共用体实现32位数高16位和低16为相加
#include <stdio.h>
union
{
struct
{
unsigned short low;
unsigned short high;
}x;
unsigned int y;
}num;
int main()
{
num.y=0x11223344;
printf("%0x\n",num.x.low+num.x.high);
return 0;
}
友情提示:共用体在任一时刻,只能有一个数据元素占有该内存空间。这就是该程序的巧妙之处。
如何将一个32位的高16位和低16位相加
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。