車・自動車SNSみんカラ

  • 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
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件



今、あなたにおすすめ
この記事へのコメント
2011/10/21 22:38:23
あー、職業がら得意です(笑
コメントへの返答
2011/10/22 21:15:16
そうなんですね~(w

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

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

おすすめアイテム

 
 
プロフィール
「覚え書き : 基板が焼けても直せます! http://cvw.jp/b/526128/39663368/
何シテル?   04/24 23:30
【 てぇかむ@みんカラ√ 】 ECU改だけで、純正メカなのに(純正タコ読みですが)9,800rpm回るエンジン・・・ 買ってから早16年、未だにビートが好きな...
ハイタッチ!drive
みんカラ新規会員登録
ユーザー内検索
<< 2017/4 >>
      1
2345678
9101112131415
16171819202122
23242526272829
30      
ブログカテゴリー
リンク・クリップ
インタークーラースプレー用タンクへの自動補水システムが完成 
カテゴリ:その他(カテゴリ未設定)
2017/04/25 09:32:47
人生のT-VIS作動まであと1000回転! 
カテゴリ:その他(カテゴリ未設定)
2017/04/24 23:45:50
基板が焼けても直せます! 
カテゴリ:その他(カテゴリ未設定)
2017/04/24 23:27:59
お友達
ビート&トゥデイの液漏れECU&純正オーディオ、3年保障修理で良ければ受け付けできます?
111 人のお友達がいます
shumikaPPshumikaPP * pan-daapan-daa *
まつ~まつ~ * 80868086 *
b2212360b2212360 * mx5ミアータmx5ミアータ *
ファン
123 人のファンがいます
愛車一覧
ホンダ ビート りあ・ミッドシップ・アミューズメント (ホンダ ビート)
 “ビート mhd もどき” この赤いビートに出逢ってから、いつの間にか 5,600日 ...
ホンダ エディックス エディックス mhd もどき (ホンダ エディックス)
横3席×前後2列の6座独立シートで、 合計6人(前3人、後3人)乗れる どマイナーな車で ...
ホンダ ステップバン ステップバン mhd もどき (ホンダ ステップバン)
横2人×前後2列のシートで、合計4人乗れる どマイナー?な車です。(笑)  (貨物車なの ...
ホンダ モンキー NS-Monkey “NSZ-63JZ” (ホンダ モンキー)
 NS-1のエンジン (62.9cc) + モンキーの車体 (Z50JZ) ⇒ NSZ- ...
QRコード
QRコード
このブログを携帯でご覧になれます
ヘルプ利用規約サイトマップ
©2017 Carview Corporation All Rights Reserved.