Битовый оператор получения байта из 32 бит

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

12
задан Bill the Lizard 17 September 2012 в 13:26
поделиться