今、特定のメモリ領域からビット数を指定してデータを
取得するコードを書いてます。
メモリからリードする際に4バイト固定かつ4バイトアラインが存在する
という条件があり、ビット指定は
「オフセットxxBit目からyyBit分」
という指定をされます。オフセットは0から始まります。

例えば、21bit目から95bitリードしろという指定が来ると
int a[4]を用意してa[0]の21ビット目からa31ビット目,a[1],a[2],
a[3]の0ビット目から19ビット目にデータがリードされます。

これを、int b[4]を用意し、b[0],b[1],b[2]の0ビット目から30ビット目に
詰めるように格納したいのですが、楽にやる方法が考え付きません。
どなたかご教授お願いします。