Умножить на 2 - сдвиг влево, а разделить на 2 - сдвиг вправо (по крайней мере, для чисел без знака).
Если вы хотите сдвинуть влево на 2 бита, это умножьте на 4.
Так, например, если у вас есть двоичное значение:
b15 b0
v V
0000 1111 0101 1000
и вы хотите извлечь b3 и b2, вы должны И весь лот с 0xc0 и разделить на 4.
0000 1111 0101 1000
0000 0000 0000 1100 <- AND with 0xc0
-------------------
0000 0000 0000 1000
-------------------
0000 0000 0000 0010 <- divide by 4
Поскольку это звучит подозрительно, как домашняя работа (и я не кодировал для SPARC в течение длинного времени), я не буду пытаться дать вам законченное решение - этого должно быть достаточно, чтобы вы начали .