資格勉強

BCD(2進化10進数)とは?変換のやり方やメリットなどをわかりやすく解説

資格勉強

2進数や16進数について勉強しているときに、BCD(2進化10進数)という単語が出てきた事はありませんか?
BCDは変換方法は簡単だけど、用途がよくわからなかったりします。
そこで、今回はBCDについて変換方法や用途も含め、わかりやすく解説していきたいと思います!

BCD(2進化10進数)とは?

BCD(2進化10進数)とは、「Binary Coded Decimal」の略で、10進数の一桁を4bitの2進数で表したものです。たとえば、10進数の「351」をBCDにすると、3、5、1をそれぞれ2進数に直して、「0011 0101 0001」になります。

BCDでは10進数の一桁を必ず4桁の2進数で表します。10進数の「1」は、BCDでは「0001」のように前に0をつけて表現されます。

また、10進数では一桁に0~9の数字までしか使わないため、BCDの各4桁には0000~1001までのパターンしか使われません。

10進数の10は2進数だと「1010」と表されるますが、BCDだと「00010000」と表されます。

すしそ
すしそ

あくまで主役は10進数で、各桁が2進化されてるだけなんだね

BCDへの変換方法

BCDの変換は先程の例のように、10進数で表された各桁を4桁の2進数で表記するだけで大丈夫です。

10進数の0~20までのBCDへの変換表は下のようになります。

BCDは16進数で見たときに10進数と同じ表記になっていることがわかりますね。

BCDは16進数でみると10進数と同じ表記になっていますが、BCDを普通の2進数表記として10進数に戻す計算をおこなうと、BCDにする前の10進数と一致するとは限りません。

例えば、10進数の15のBCDは00010101ですが、これを普通の2進数としてみると、10進数で21を表すことになります。

BCDのメリットや用途は?

BCDのメリットは上の表を見て分かる通り、BCDの16進数表記を見たときに人間が理解しやすいということです。

コンピュータの中ではデータは2進数で扱われ、レジスタなどに保存されます。開発やシミュレーションでレジスタの中身を人間が確認する際は、2進数より見やすい16進数が使われます。このとき、普通の16進数ではアルファベットが含まれたり、各桁の重みで10進数とはずれていくため、16進数と10進数の対応が分かりにくくなります。

BCDに変換してから保存することで、16進数は10進数と同じ見た目になるため、人間がレジスタの内容を理解しやすくなります。

BCDは時計や温度計などの表示を行う電子回路で利用されます。
0~9の数字を表示できる素子が並んでいるとします。データが2進数で保存されている場合は10進数へ対応するように変換してからでないと数字が表示できませんが、BCDで保存されている場合、各桁4bitを直接各素子に送ることによって各桁の数字を表示できます。

BCDは各桁を4桁で表すため、普通の進数よりもbit数が多くなってしまうというデメリットもあります。

まとめ

今回はBCDについてまとめました。

少し説明がややこしかったかもしれません。。。

BCDは変換自体は簡単ですが、活用法となるとコンピュータの中の話になるので急に難しくなりますね。

コメント

タイトルとURLをコピーしました