各ビットの値の取得

前述の配列を用いてドットマトリクス LED の列の設定を行うには、配列の各要素、すなわちある値に対して、あるビットが 0 か 1 かをプログラム上で取得する必要があります。

例えば「0b00010100」という値の 2 番ビット(LSB を 0 番目とする)が 0 か 1 かを取得するにはどうすれば良いでしょうか?

方法のひとつは、「ビット全体を右側(LSB 側)に 2 つ移動させ,0 番ビットを見てみる」ということです。

まずは「0b00010100」のビット全体を右側に 2 つ移動させてみましょう。以下のように「0b000101」という値が得られます。

二進数の各ビット十進数表記
76543210
元の値0001010020
右側に 1 つ移動000101010
右側に 2 つ移動0001015

この「0b000101」に対して、以下のように 0 番目のビットだけを見るようにすれば、元の値の 2 番ビットが 0 か 1 か(今の場合は 1)を取得できます。

二進数の各ビット十進数表記
76543210
元の値0001015
0 番ビット11

C 言語には、以上のような演算を行うのに便利な「ビット演算」という演算が備わっています。

前の記事

LEDの点灯パターンの二進数表記

次の記事

ビット演算