|
シフトレジスタ (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 本の通信回線に乗せることができます。
インターネットでもこのように、 データをシリアルに変換して通信しています。