#include <iostream>
using namespace std;int main()
{uint32_t a = 10;uint32_t b = 600;//先將uint32_t的a轉為uint64_t,此時a前面32位都是0,然后左移32位,此時右32位為0,最后加上uint32_t類型的b,填充右32位的0uint64_t val = (((uint64_t)a) << 32) + b;cout << a << " " << b << endl;cout << val << endl;{//先將uint64_t的值右移32位并轉為int類型,就能獲取之前uint32_t類型的a值int a1 = (int)(val >> 32);//uint32_t的b值可以直接將uint64_t的值強轉為int(uint32_t)即可,就可以獲取原值int a2 = (uint32_t)val;cout << a1 << " " << a2 << endl;}return 0;
}
/*
輸出結果:
10 600
42949673560
10 600
*/