Мне интересно написать функцию 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, но я не знаю, как использовать здесь вычитание. Любые идеи?