uint32_t visitors : 3;
uint32_t hits : 27;
} Bits;
typedef union {
Bits bits;
uint32_t aggregate;
} BitFields;
int main() {
BitFields bitfields = {};
bitfields.aggregate = 28;
return 0;
}
Можете подсказать значение переменных hosts, visitors и hits?
Думаю, правильного ответа у этой задачи нет. Битовые поля могут быть упакованы по-разному, вроде даже порядок может быть не такой, как ты задефайнил.
подробней https://stackoverflow.com/questions/17723604/bitfields-why-implementation-specific
Порядок от младшего к старшему биту, забыл указать
Я написал, что uint32_t hosts : 2; uint32_t visitors : 3; uint32_t hits : 27; в памяти могут лежать uint32_t visitors : 3; uint32_t hosts : 2; uint32_t hits : 27; И суммарно могут занимать вполне себе не 32 бита, а больше.
Обсуждают сегодня