如何将一个32位的高16位和低16位相加

Posted 一代枭雄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将一个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位相加的主要内容,如果未能解决你的问题,请参考以下文章

什么是STM32的高寄存器和低寄存器?

单片机中高8位是啥,低8位又是啥,还有高四位低四位的,求解

易语言-MD5加密16位和32位方法

电脑32位和64位有啥区别 电脑32位和64位的区别

32位和64位有啥区别 32位和64位区别都有哪些

32位和64位的区别