Малоуровневая манипуляция низкого уровня никогда не была моей сильной стороной. Я позабочусь о помощи в понимании следующего варианта использования побитовых операторов. Обратите внимание...
int age, gender, height, packed_info;
. . . // Assign values
// Pack as AAAAAAA G HHHHHHH using shifts and "or"
packed_info = (age << 8) | (gender << 7) | height;
// Unpack with shifts and masking using "and"
height = packed_info & 0x7F; // This constant is binary ...01111111
gender = (packed_info >> 7) & 1;
age = (packed_info >> 8);
Я не уверен, что этот код выполняет и как? Зачем использовать магический номер 0x7F? Как выполняется упаковка и распаковка?