У меня есть 32-битный int, и я хочу установить первые 10 бит на конкретный номер.Установите первые 10 бит int
IE
32-разрядное ИНТ:
11101010101010110101100100010010
Я хочу, чтобы первый 10 бит быть номером 123, который является
0001111011
Так что результат будет
00011110111010110101100100010010
Кто-нибудь знает Насколько я мог бы это сделать? Я знаю, что нам нужно делать бит-сдвиги, но я не очень хорош, поэтому я не уверен, что
Спасибо!
Что вы имеете в виду под «первым битам»? Самый значительный или наименее значимый? – EOF
'unsigned shift = (32-10); unsigned long mask = (1ul << shift) -1; y = (x & mask) | (123 * 1ul << shift); ' – chux
@chux: почему это не ответ? –