70,020
社区成员




#include <iostream>
using namespace std;
// 两数合并函数
unsigned int combine(unsigned short a, unsigned short b)
{
return (unsigned int)(a<<16)|b;
}
// 分拆函数,第一个参数为合并后的unsigned int,后面分别为原来的两个unsigned short的返回值
void retract(unsigned int combinedInteger, unsigned short &a, unsigned short &b)
{
a = (unsigned short)((combinedInteger & 0xffff0000) >> 16);
b = (unsigned short)combinedInteger & 0x0000ffff;
}
int main(void)
{
unsigned short a = 123;
unsigned short b = 321;
unsigned int c = 0;
c = combine(a, b);
cout << "Combined integer is: " << c << endl;
unsigned short d = 0;
unsigned short e = 0;
retract(c, d, e);
cout << "Rectracted d = " << d << endl;
cout << "Rectracted e = " << e << endl;
return 0;
}