メディア
連載
» 2021年12月06日 10時00分 公開

BCD(2進化10進数)って何?Q&Aで学ぶマイコン講座(67)(1/3 ページ)

マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「BCD(2進化10進数)って何?」についてです。

[STマイクロエレクトロニクス,EDN Japan]

過去の質問一覧はこちら

 素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。

 今回は、初心者から多く寄せられる質問です。

 マイコンのレジスタの中には、「2進化10進数(以下BCD:Binary-Coded Decimal)レジスタ」があります。そもそも、BCDとは何ですか? なぜ一部のレジスタだけBCDなのでしょうか? BCDレジスタはどのように扱えばよいでしょうか?

 BCDとは、10進数の1桁を、0から9までを表す2進数の4桁で表現したものです。レジスタの値を16進数で表した時に、そのまま10進数として読み取れるので、10進数を扱う機能に非常に便利です。

 2進数の4桁は0〜15で表現できますが、これを下位の10個だけを有効な数字として取り扱います。

 例えば、ある演算結果が10進数の「37」だったとします。実際のレジスタには2進数で保存されるので、「0010 0101」がレジスタの値になります。一方、統合開発ツールやLCD表示などを使って、人が確認できる数字にして表示する場合は、2進数よりも16進数の方が見やすいため、16進数の「25」で表示されます。しかし、16進数の「25」が10進数の「37」とは分かりにくく、不便です。そこで、マイコンの内部回路で16進数の「25」を「37」に変換します。レジスタには、16進数の「37」、すなわち2進数の「0011 0111」が保存されます。「0011 0111」を外部に表示する場合は、そのまま「37」と表示されるので、一目瞭然で演算結果が10進数の「37」だと分かります(図1)

図1:2進化10進数(BCD)[クリックで拡大]

 BCDは、時計やカレンダー機能で使用されます。日時の演算自体は2進数で行われますが、演算結果をBCDでレジスタに保管しておき、それを時刻や日付として外部に表示するときは、レジスタの内容をそのまま利用できるというメリットがあります。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.