• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2011年10月21日

覚え書き : 2進数 ⇒ BCD変換について @ トリップ メーターを作るのに必要

覚え書き : 2進数 ⇒ BCD変換について @ トリップ メーターを作るのに必要 人間が数を数えたりするには、10進数を使っている。

これは、0~9(10種類の文字を使う)まで数えると、次の桁に行く(桁上がりする)ので 10進数。
 ⇒ 9 の次は、桁上がりして、10 (10進数で表現)

--------
これが、マイコン(コンピューター)の中では、基本的には 2進数を使う。

これは、0~1(2種類の文字を使う)まで数えると、すぐに次の桁に行く(桁上がりする)ので 2進数。
 ⇒ 1 の次は、桁上がりして、10 (2進数で表現。 10進数で表現すると、"2" のこと。)

-------- --------

今、自分で液晶表示の トリップ メーターを作ろうとしているが、
C言語とかBASIC言語みたいな 「高級言語」 を使っていないので、
プログラム(アセンブリ言語)内では 2進数で数えている。

これを、(10進数を使っている人間が見る)液晶画面 に表示しなければならない。

その時に使うのが、今回調べた 「2進数 ⇒ BCD 変換」。

 BCD :  英語で、<Binary Coded Decimal>。

      日本語で、<2進化 10進表現>。 
       「2進数だけど、(各桁は)10進数を表現してるよ~」 ってところか??

 >BCD変換ルーチンについて | Leitz_House Top Page
 > http://www.geocities.jp/leitz_house/
 > http://www.geocities.jp/leitz_house/electronics/pic/bcd_01.htm

-------- --------

2回くらい読んだけど、何か騙されているみたいで・・・
いまいちピンと来ない・・・ので、書いてみた。

-------- --------

試しに、123 (10進表現。いわゆる 「ひゃく にじゅう さん」 ) をBCD変換してみることにした。

> BCD部分の各桁について、「値が5以上ならば3を加算する」
> BCD部分に3を加算しても、4bit目(8)が0である場合は、3を減算して元に戻し、次のステップに進みます。

> ・BCD部 変換、は 「BCD部分の各桁(2進表現なので4桁分)について、値が 5以上ならば 3を加算する」 の意味。

> ・左にシフトは、2進数では 2倍の意味になります。


10進数 : 123
16進数 : 0x7B
2進数 : 0111 1011b ← [BIN] の所に入れる

[   BCD   ]  [     BIN     ]
百位 十位 一位  b7 6 5 4 3 2 1 b0
0000 0000 0000  0 1 1 1 1 0 1 1     元の数

0000 0000 0000  0 1 1 1 1 0 1 1     1st-1 (BCD部 変換) ⇒ 何も起きない
0000 0000 0000  1 1 1 1 0 1 1 o     1st-2 (左にシフト)
0000 0000 0000  1 1 1 1 0 1 1 o     2nd-1 (BCD部 変換) ⇒ 何も起きない
0000 0000 0001  1 1 1 0 1 1 o o     2nd-2 (左にシフト)

0000 0000 0001  1 1 1 0 1 1 o o     3rd-1 (BCD部 変換) ⇒ 何も起きない
0000 0000 0011  1 1 0 1 1 o o o     3rd-2 (左にシフト)
0000 0000 0011  1 1 0 1 1 o o o     4rd-1 (BCD部 変換) ⇒ 何も起きない
0000 0000 0111  1 0 1 1 o o o o     4th-2 (左にシフト)

0000 0000 1010  1 0 1 1 o o o o     5th-1 (BCD部 変換) ⇒ BCD部の一の位が変化
0000 0001 0101  0 1 1 o o o o o     5th-2 (左にシフト)
0000 0001 1000  0 1 1 o o o o o     6th-1 (BCD部 変換) ⇒ BCD部の一の位が変化
0000 0011 0000  1 1 o o o o o o     6th-2 (左にシフト)

0000 0011 0000  1 1 o o o o o o     7th-1 (BCD部 変換) ⇒ 何も起きない
0000 0110 0001  1 o o o o o o o     7th-2 (左にシフト)
0000 1001 0001  1 o o o o o o o     8th-1 (BCD部 変換) ⇒ BCD部の十の位が変化
0001 0010 0011  o o o o o o o o     8th-2 (左にシフト)

-------- --------
結果、BCD部は [ 0001 0010 0011 ] になった。

 百の位 : 0001b (2進表現) → 1 (10進表現)
 十の位 : 0010b (2進表現) → 2 (10進表現)
 一の位 : 0011b (2進表現) → 3 (10進表現)

百の位 : 1 、十の位 : 2 、一の位 : 3 、って事で
BCD手動変換したら 123 が出た。

すげ~(^o^)/


>このように、2進部分が256倍されて、かつ10進形式に変換されて、BCD部分のレジスタに収まることになります。
>2進部分の桁数が増えても、繰り返しの回数が増えるだけで、まったく同じような作業で処理できます。

>数学も含めた人類の英知全てが技術に生きているのを感じますね(^ ^;


一番最初にコレを使ったのが、1960年、IBMの
「IBM 1410」 という中型ビジネスコンピュータだそうな。

IBM、すげー。

 >二進化十進表現 - Wikipedia
 > http://ja.wikipedia.org/wiki/%E4%BA%8C%E9%80%B2%E5%8C%96%E5%8D%81%E9%80%B2%E8%A1%A8%E7%8F%BE

(写真引用元)
 >The IBM 1401 | ClomBers
 > http://www.columbia.edu/cu/computinghistory/1401.html
ブログ一覧 | 電子工作 / Digi-Trip 関連 | クルマ
Posted at 2011/10/21 21:22:22

イイね!0件



今、あなたにおすすめ

ブログ人気記事

愛車と出会って5年!
MatsutakaZC33S_C7Z51さん

秘密にしたいツーリング (((*゚ ...
エイジングさん

日産自動車の追加のリストラ
パパンダさん

セブンは気温を裏切らない
きリぎリすさん

世の中 善い人ばかりじゃない‼️
SUN SUNさん

チャールズ、カルロス、シャルルは同 ...
kazoo zzさん

この記事へのコメント

2011年10月21日 22:38
あー、職業がら得意です(笑
コメントへの返答
2011年10月22日 21:15
そうなんですね~(w

BCD、CPUがそういう扱い方をしている事は知っていました。
 (小6~中学校の頃に使っていたMSX規格のパソコンは、数値計算@BASIC言語 で誤差が出なかった。 別の、NECのパソコン@BASIC言語 だと2進数で扱っているので、誤差が蓄積するとかだった気がします。)

でも、ただ知っているのと、自分でCPUにその動作をさせるのでは全然違いますよね~。

プロフィール

「ギザギザ空力。:-) 〉https://youtu.be/cbYTTVWRORI
何シテル?   05/11 12:19
買ってから早23年、未だにビート好き。 R5/02に再び公道復帰。 末尾に何某かが付いて、てぇかむ工房だったり、 てぇかむ技研工房だったり、てぇかむ危...

ハイタッチ!drive

みんカラ新規会員登録

ユーザー内検索

<< 2025/5 >>

    123
45678910
11121314151617
18192021222324
25262728293031

ブログカテゴリー

リンク・クリップ

ヘッドライトバルブ交換 
カテゴリ:その他(カテゴリ未設定)
2025/05/18 03:55:07
サブバッテリー DIY ①リン酸化鉄リチウム(lifepo4)230A 
カテゴリ:その他(カテゴリ未設定)
2025/05/17 20:12:43
さようなら、みんカラ 
カテゴリ:その他(カテゴリ未設定)
2025/05/14 06:57:18

愛車一覧

ホンダ ビート ゆるスポ アクティ コンバーチブル (Lv.33) (ホンダ ビート)
農道を走るビート。 ヒトの背中を後ろから押すクルマ。:-) S660 →『ガチスポ』に ...
ホンダ エディックス エディックス mhd (Lv.20) (ホンダ エディックス)
横3席×前後2列の6座独立シートで、 合計6人(前3人、後3人)乗れる どマイナーな車で ...
その他 トレーラー 高速走行用リヤカー(シーマリン オートバイトレーラー) (その他 トレーラー)
高速道を走れる『リヤカー』:-) (ライトトレーラー) "車検証"上での「車体の形 ...
ホンダ モンキー NS-Monkey “NSZ-63JZ” (ホンダ モンキー)
車体が40年モノ。(元エンジンはスーパーカブ70のセル付きが載っていた) エンジンは3 ...
ヘルプ利用規約サイトマップ

あなたの愛車、今いくら?

複数社の査定額を比較して愛車の最高額を調べよう!

あなたの愛車、今いくら?
メーカー
モデル
年式
走行距離(km)
© LY Corporation