二進化十進数 (Binary-coded Decimal)

4月 22, 2009

説明:

二進化十進数。これを知らなかったとしても、人生において、全く損はしていないと思います。10進数の各桁を2進数で現したものです。ただ、Mod 演算は知っていると何かと便利です。個人的に、理系な人とそうでない人を見分ける指標の一つが、「Mod 演算を使えるかどうか」です。試す機会はありませんが。

Modulo (モジュロ)演算とは:

mod a はa を法とする世界です。とか言う人は数学が得意な人です。モジュロの概念はともかく、計算自体は簡単、割り算のあまりを求める計算(剰余演算)です。結果は0から(a-1) の数を繰り返します。

QC の場合、Math Patch にModulo があります。また、Mathematical Expression Patch で、%(C 言語と同じ演算子)で計算できます。

動作:

カウンターの数字を眺めるだけ。上から、

・ 1msec でカウントアップする10進数のカウンター

・10進数の各桁を分割したもの

・1sec の桁を2進数で現したもの

・1000sec – 100sec – 10sec – 1sec を2進数で現したもの(これがBCD)

解説:

10進数の各桁の分割を”10で割る、Mod をとる”、で作っています。全く同じ方法(2で割る、Mod 2 をとる)で、2進数にすることができます。

突然ですが、多くの8bit マイコンではかけ算、割り算の命令を持っていません。そのかわり、2のn 乗や、Mod 演算ができます。それは、私たちが「3桁のかけ算をパッと頭で計算出来ないけど、1000倍するのは簡単。」ということと同じです。桁をずらせば良いからです。

では、10進数でMod 10 をとるには?これは、右端の数(一の位)をとれば良いのです。2進数でMod 2 をとるのも同様です。

今回はこれを使って、各桁を取り出しています。

(その後、8bit Binary -> 3桁 BCD の変換器を作りました。)

option -クリックで QTZ をダウンロード

option -クリックで QTZ をダウンロード

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。