Packing 4 Integers as ONE BYTE?

前端 未结 4 1270
予麋鹿
予麋鹿 2020-12-16 13:35

I have four integers {a, b, c, d} that can have the following range of values:

a - {0 or 1} (1 bi

4条回答
  •  攒了一身酷
    2020-12-16 14:20

    Pretty simple. Mask (for range), shift them into place, and or them together.

    packed = ((a & 1) << 7) | ((b & 1) << 6) | ((c & 7) << 3) | (d & 7)
    
    a = (packed >> 7) & 1
    b = (packed >> 6) & 1
    c = (packed >> 3) & 7
    d = packed & 7
    

提交回复
热议问题