Меня интересует запись функции getMyByteChunkFunction
, которая принимает два параметра - 32-битное целое число и смещение байта (0, 1, 2 или 3), затем возвращает соответствующий байт из 32-битного целого числа. Например, при задании этого целого числа:
(3) (2) (1) (0) ---byte numbers
int word = 10101010 00001001 11001010 00000101
вызов функции getMeByteChunkFunction(word, 2)
возвращает 00001001
.
Однако я ограничен в битовых операторах, которые могу использовать. Я могу использовать только >>
, <<
и ровно одно вычитание. Я знаю, как это сделать с помощью AND и XOR, но я не знаю, как здесь использовать вычитание. Есть идеи?