Для 32-битного целого числа, как я могу установить k бит низкого порядка в C?
C для установки k младших бит
Ответ 1
что-то вдоль линий
установите k младших бит:
while (k) {
k--;
num |= (1<<k);
}
Это то, что вы имели в виду?
Ответ 2
Предполагая, что вы хотите установить k младших бит 32-разрядного целого x, я считаю, что это сработает:
if( k > 0 ) {
x |= (0xffffffffu >> (32-k))
}
Ответ 3
Чтобы установить n
младшие значащие бит в k
, вы можете использовать арифметику:
k |= (1 << n) - 1;
(Если n
меньше или равно ваш размер int в битах.)
Ответ 4
int bitmask = 1;
for (ix = 0; ix < k; ++ix)
{
C = C | bitmask;
bitmask <<= 1;
}