たとえば1バイト(8ビット)の数字から上位4ビットと下位4ビットを取り出すことはできますか? A=154 B=上位4ビット C=下位4ビット そして上位4ビットは単純に取り出すと下位4ビットが0の値なので、その上位4ビットを下位4ビットにずらす事が出来ますか? それも出来たら今度は1バイトに限らず2バイトとかから好きなビット位置の6ビットを取り出して0〜63の数字にしてみます。 その辺りが出来れば、作れるような気がしますが、よくわからなかったらビット演算子をいじって試しながら理解してみるといいと思います。