|
|
シフトレジスタ (shift register) |
レジスタは、データを一時的に記憶する一種のメモリで、
記憶容量は 8 ビット、16 ビット、32 ビット …等です。
シフトレジスタは、記憶しているデータの桁を左右にシフトさせることができるレジスタです。
CPU の内部には様々なレジスタが使われていますが、
この機能を持ったものが少なくありません。
下図は 8 ビット のシフトレジスタの例です。
矢印のボタンをマウスでクリックする度に、 矢印の方向にデータがシフトします。
シフトした結果、 シフトレジスタからあふれたデータは外部に出力されます。
逆に、 外部からシフトレジスタに、 1 ビット ずつ任意のデータを入力することができます。
2進数 の性質で面白いのは、 たとえば 00011000
(10進数では 24) を左にシフトさせる度に、 48、96 … と 2倍に、
右にシフトさせると 12、6 … と 1/2 の値に変わることです。
10進数なら、 たとえば 3450 を左に一桁シフトさせると 34500 となって 10倍、
右に一桁シフトさせると 345 で 1/10 になるのと同じで、
2進数の基数は 2、 10進数の基数は 10、 桁をシフトさせるとそれぞれの基数倍、 あるいは基数分の1になります。
シフトレジスタの用途は他にもいろいろありますが、
シフトの度に 1 ビット ずつ順にデータを取り出すことができますから、
8回シフトさせると 8 ビット、 すなわち 1 バイトのデータをシリアルに変換できます。
これなら 8 ビットの情報でも 1本の通信回線に乗せることができるので、
インターネットの情報なども、 このようにシリアルに変換して通信されています。