デジタルは1と0?-2進数の話

デジタルは1と0?-2進数の話

 デジタル回路設計を学ぶにあたり、デジタルとは何かを理解しておく必要があります。

 よく、デジタルは”1”と”0”で表現する。とか、アナログ時計とデジタル時計の違いだ。みたいな事をいいますが、これから学ぼうとするデジタル回路設計という範囲では、ある数値を2進数で表現したもの。と理解しておいてください。

 ある数値というのは、これから設計する電子回路の入力となる値です。温度計の電圧値かもしれないし、スピードメータの値でも良い。ゲーム機のコントローラボタンでも良いです。普通、これらの値はアナログで入ってきます。例えば、気温だと22.3℃という値。ゲーム機のコントローラだと、上ボタンなどですね。

 2進数は学校で習ったでしょうか? 普通の生活では10進数を使いますね。0〜9の数値です。この「0〜9を使う」というのを2進数で置き換えると、「0〜1を使う」という事になります。

 ここで、2進数に挫折する学生が多いです。「0〜1しか無いなら、1個しか数えられない」といいます。その疑問は当たっていますし、正解です。

 じゃ、10進数に話を戻して同じ疑問に割り当ててみましょう。10進数は0〜9までなのだから、9までしか数えられませんか? 「何言ってるんだ、10個でも15個でも200個でも無限に数えられる」と思いませんか? でも、それって勝手に「」を作ってません? 9の次は10なんでしょ? 1つ桁を上げてません?

 10進数では桁を自由に増やしているから、無限に数が数えられるんです。では、同じように2進数でも桁を自由に増やせば無限に数えられますよね。でも、0の次は1です。じゃ、その次は? 桁を増やして10ですね。

10進数と2進数を並べてみると次のようになります。

 どうですか? 無限に数えられますね。2進数で数えた時の”10″と10進数で数えた時の”10″って同じに見えるので混乱します。なので、10進数を示す時には “10(Dec)”や”10(dec)”などと表記します。会話の中では”十進数でジュウ”と呼びます。

 2進数の”10″は”ジュウ”とは言いません。”二進数でイチゼロ”とか”バイナリのイチゼロ”と言います。表記は”10(Bin)”だったり”10(bin)”などです。このように、10進数なのか、2進数なのかが相手にわかるように習慣をつけてください。

 人間の頭は10進数に慣れきってますので、2進数の計算なんかできません。熟練のエンジニアでも2進数を扱う時には電卓を使います。なので、ハードウェア設計に携わる人は2進数と16進数が扱える関数電卓を使ってください。Windows付属の電卓アプリを使っている人も多いようですね。

 表記や読み方については、各社で統一されている場合が多いです。特に仕様書や説明書への記載方法は社内規定があると思いますので、先輩に確認してください。

 ここまでで、「桁」という概念が出てきました。2進数に限って「桁」のことをbit数(ビットすう)とかbit幅(ビットはば)といいます。ビット数って聞いたこと無いですか? パソコン買う時に32bitとか64bitとか書いてませんでした? パソコンもデジタル回路です。なので、中の電子回路は2進数の64bitで数えています。つまり、64桁で数えているんです。64桁って、010000101111001…桁多すぎじゃないですか? 桁が多い問題を解決する方法が16進数です。