もしも二進数を使ったら… EditToHeaderToFooter

  • 加算は1+1=10とだけ覚えれば良い。敢えて言うなら0+0=0、1+0=0+1=1も覚えれば完璧。
  • 減算は補数と加算で済む。
  • 乗算はシフトと加算で済む。
  • 除算はシフトと減算で済む。

このように、加減乗除毎に九九が必要な十進数よりは遙かに簡単です。
十進数の場合、

  • 加算九九は普段九九と呼ばないが、覚えさせられている: くもん出版 学習ポスタ たしざん
  • 減算九九も普段九九と呼ばないが、覚えさせられている: くもん出版 学習ポスタ ひきざん
  • 乗算九九は、九九と言えば乗算なほど、明示的に暗唱を特訓させられる。
  • 割算九九は、割り声とも呼ばれていたが、珠算前提かつ煩雑なので今はもう諦めて教えてない。

+1や−1、×1などが簡単すぎて、または加算と乗算の対称性を利用すれば覚える量は減らせるが、
それでも、数十もの計算結果を覚える必要があるのが十進数の四則演算である。
対して、二進数では精々数個の結果を覚えていれば十分。

残念ながらこの世界では、世界規模で十進数で標準化されていて、今更変更すべきとは思えない。
しかしながら、もしニ進数を使った場合は様々なところで、もっと楽に済む。
以下では、そんな二進数の世界を纏めてみる。

二進法の表記と数え上げ EditToHeaderToFooter

何かのモノの多さを指を丸めるか延ばすかで表そう。
簡単なため、指を丸めた状態を0、真っ直ぐ延ばして立てた状態を1と書こう。

無と有 EditToHeaderToFooter

  • まず、Aが無い状態を指を丸めたグーで表そう。書く場合は0で表そう。
  • 次に、Aが有る状態を指1本だけ立てて表そう。書く場合は1で表そう。

これだけでAの有無について語れる*1が、ここではAを増やすことに集中しよう。

*1 ref: ブール代数。

Aと同じと呼べるモノがもう1つ有る状態(AA) EditToHeaderToFooter

既に定義した0とも1とも異なる状態であるので指1本の丸めと立てでは表せない。
もう1本の指を一緒に使えば表せそう。
書く場合1だけではどの指を立てたか分からないので、指の順番を決めよう。

  • Aが無い状態を00で書こう。
  • Aが有る状態を01で書こう。
  • Aがもう一つ有る状態を10で書こう。

00は0と全く同じ状態、01は1と全く同じ状態で、使う指の数が異なるだけ。
10は01と異なる状態を表していて、同じく2本指を使うが、立てた指が異なる。

Aと同じと呼べるモノがもう1つ有る状態(AAA) EditToHeaderToFooter

Aが10よりもう1つ増やしたら両方の指を立てれば良い。つまり11で表そう。

自然数に関する二進数 EditToHeaderToFooter

Aを1個増やして行ったときの状態と、それを表す指の状態を表1にまとめられる:

表1: Aの状態と、それを表す指の状態
Aの状態使う指の数*2
1本10本11本100本
 0000000000
A1010010001
AA-100100010
AAA-110110011
AAAA--1000100
AAAAA--1010101
AAAAAA--1100110
AAAAAAA--1110111
AAAAAAAA---1000
AAAAAAAAA---1001
AAAAAAAAAA---1010
AAAAAAAAAAA---1011
AAAAAAAAAAAA---1100
AAAAAAAAAAAAA---1101
AAAAAAAAAAAAAA---1110
AAAAAAAAAAAAAAA---1111

言葉の定義 EditToHeaderToFooter

ここで、正確に話しやすいように便利な言葉を定義しよう。

  • Aの状態を表す指の状態をと呼び、
  • Aの無い状態から、Aを1個ずつ増やしていく状態を表す数を自然数と呼び、記号$$ \mathbb{R} $$で表す。
  • 数を表すのに使う記号を数字と呼ぶ。例えば、0は数字である。1も数字である。
  • 数字を使って数を表す規則を表記法と呼ぶ。各表記法の名前には、必ず接尾語-法を付ける。
  • ○○法で表される数の表記を○○数と呼ぶ。
  • 指の位置をと呼び、桁の数を桁数と呼ぶ。
  • 各桁を右から左に向かって、順に1の位10の位11の位,100の位、…と呼ぶ。
  • 左側を上位、右側を下位と呼ぶ。
  • 同じ数字でも位置によって異なる数を表す表記法を位取り表記法と呼ぶ。
  • 0と1だけを下位から順番に繰り返して使う位取り表記法を10進法と呼ぶ。古の言葉では二進法とも呼ぶ。
  • 使う桁の数に応じて、順に1桁二進法10桁二進法11桁二進法100桁二進法、…と呼ぶ。

ここで、1は1桁二進数、01は10桁二進数、001は11桁二進数、0001は100桁二進数である。
これらは異なる表記法に基づく異なる表記であるが、共にAという状態を表すために同じ数を表している。

*2 十進数に慣れすぎた方々へ:この世界では二進数が標準で、アラビア数字は全て二進数である。

二進法の加算 EditToHeaderToFooter

    数学 一覧 検索 最新 バックアップ リンク元   ヘルプ   最終更新のRSS