How to store a 64 bit integer in two 32 bit integers and convert back again

前端 未结 6 959
太阳男子
太阳男子 2020-11-30 02:09

I\'m pretty sure its just a matter of some bitwise operations, I\'m just not entirely sure of exactly what I should be doing, and all searches return back \"64 bit vs 32 bit

6条回答
  •  粉色の甜心
    2020-11-30 02:35

    pack:

    u32 x, y;
    u64 v = ((u64)x) << 32 | y;
    

    unpack:

    x = (u32)((v & 0xFFFFFFFF00000000LL) >> 32);
    y = (u32)(v & 0xFFFFFFFFLL);
    

提交回复
热议问题