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

前端 未结 6 957
太阳男子
太阳男子 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:34

    Use a union and get rid of the bit-operations:

     // for int32_t, int64_t
    
    union {
      int64_t big;
      struct {
        int32_t x;
        int32_t y;
      };
    };
    assert(&y == &x + sizeof(x));
    

    simple as that. big consists of both x and y.

提交回复
热议问题