У меня есть небольшая проблема с захватом n бит из байта.Захват n бит из байта
У меня есть целое число без знака. Скажем, наш номер в шестнадцатеричном формате равен 0x2A, что равно 42 в десятичной системе. В двоичном виде это выглядит так: 0010 1010. Как бы я захватил первые 5 бит, которые являются 00101 и следующие 3 бита, которые равны 010, и помещают их в отдельные целые числа?
Если бы кто-нибудь мог мне помочь, это было бы здорово! Я знаю, как извлечь из одного байта, который должен просто сделать
int x = (number >> (8*n)) & 0xff // n being the # byte
, который я видел на другой пост на переполнение стека, но я не был уверен в том, как получить отдельные биты из байта. Если бы кто-нибудь мог мне помочь, это было бы здорово! Благодаря!
Первые 5 (MSB) битов 42 равны 00000, потому что int всегда больше 1 байта. Кроме того, нет такого понятия, как целое число без знака, которое имеет десятичную форму шестнадцатеричного кода. 'int a = 0x2A;' то же самое, что и запись 'int a = 42;' – user93353