読み込み中...二進法(にしんほう)とは、2 を底(てい)とし、底およびその冪を基準にして数を表す方法である。
二進法を英語でバイナリー(binary) というが、これは二個一組や二単位を意味する語である。
二進法的な考えは、古代インドの学者ピンガラ (Pingala) や易の八卦・六十四卦に見られるが、数学的に二進法を確立したのはライプニッツである。ライプニッツは二進記数法の発明の後に易を知り、二進法的な発想をそこに見出した。
という数を表している(ここで 2 は十進法の 2 である)。
二進記数法で記された数を二進数ということがある。二進数という数の体系があるわけではない。また、p進数における p = 2 の場合とは全く異なる。
二進法を用いれば 0 と 1 の二種類の数字のみで零を含む任意の自然数が表現可能であり、負号と合わせることで整数が表現可能である。更に小数点を合わせて 4 種類の記号のみで実数の表現が可能である。
0 か 1 かで表すことから、転じて単一の価値観で白か黒かで物事を割り切ろうとする発想を俗に「二進法」と呼ぶ。
集積回路などのデジタル回路、ハードディスクなどの磁気ディスクでは、電圧の高低、磁極の N/S など、二値の物理現象を用いるため、数を二進法で表すのが最適である。コンピュータの内部で数値を表現する場合、十進法を用いると 0 から 9 の十種類の数字に対応する十種類の内部状態を区別しなければならない。これは機構を複雑にするので、現代のデジタルコンピュータは通常は二進法を採用し、0 と 1 のみによって数値を表現している。入出力で十進法を用いるときは一般に十進法と二進法とで変換を行う。二進化十進表現を用いたり、IBM の POWER のように十進法による直接演算機能を持つコンピュータもあるが、回路としては二値を用いている。
多くの応用で見られるように桁数が有限の場合はより限定的には有理数の部分集合が表現されているわけであるが、通常は「有限精度の実数」が表現されていると解釈される。
コンピュータ等で負の整数を扱う場合、一般的に用いられている方法は1番上位のビット(桁)を符号の用に扱い、すべてのビットが 1 のものを -1 とする方法である(2の補数を参照)。-2 は最下位ビットが 0 になる。8 ビットの場合(二進で 8 桁まで扱える場合)、-1 は 111111112、-2 は 111111102 として扱われている。この方法は 111111102 + 12 = 111111112 となり、加減乗の演算において特別な処理が不要であるという特徴を持つ。ただし、最上位ビットで繰り上がり・繰り下がりが生じた場合に 9 ビット目より上を捨てて演算することになる。また 100000002 は -128 とされることが多いが、正式には決まってない。例えばC言語等では符号付 8 ビットの数は -127 から 127 の数を扱えるとされ、正式には -128 に対応していない。
余りを求めた順の逆に並べると、それが二進法に変換された結果になる。
計算の例: 192 を二進法に変換する。 2|192よって 19210 = 110000002 である。
正で 1 未満 (0 < m < 1) である数 m を十進法から二進法に変換するのは次のようにする。
# 1 を n に、m を x に代入する。 # 2x < 1 ならば、小数点以下第 n 位は 0 になる。2x > 1 ならば、小数点以下第 n 位は 1 になる。 # 2x = 1 ならば終了。 # 2x > 1 ならば 2x - 1 を x に代入する。2x < 1 ならば 2x を x に代入する。 # n + 1 を n に代入する。 # 小数点以下の桁数が必要な桁数まで求まっているか、循環小数となったら終了する。# 2. へ戻る。
計算の例1: 1/3 を二進法に変換する。ここで「処理」の部分の最後「」はそれ以前に出てきた式である。このため、これ以上続けても同じ式の繰り返しで永久に終わらないことがわかる。すなわち小数部の「01」が循環することがわかるので終了する。
よって1/310=0.010101…2=0.012 (なお、アンダーバーの部分(01)は無限に繰り返しという意味) 計算の例 2: 十進法での 0.1 を二進法に変換する。ここで「処理」の部分の最後「0.4×2 = 0.8 < 1」はそれ以前に出てきた式である。このため、これ以上続けても同じ式の繰り返しで永久に終わらないことがわかる。すなわち小数部の「0011」が循環することがわかるので終了する。
よって 0.110 = 0.0001100110011…2 = 0.000112 である。
| 十進表記 | 二進表記 |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
| 6 | 110 |
| 7 | 111 |
| 8 | 1000 |
| 9 | 1001 |
| 10 | 1010 |
| 11 | 1011 |
| 12 | 1100 |
| 13 | 1101 |
| 14 | 1110 |
| 15 | 1111 |
| メルパ語 | |
|---|---|
| 1 | tenta |
| 2 | ralg |
| 3 | raltika |
| 4 | timbakaka |
| 5 | timbakaka pamb ti |
| 6 | timbakaka pamb ralg |
| 7 | timbakakagul raltika |
| 8 | engaka |
| 9 | engaka pamb ti |
| 10 | engaka pamb ralg pip |
| 南キワイ語 | シッサノ語 | |
|---|---|---|
| 1 | neis | puntanen |
| 2 | netewa | eltin |
| 3 | netewa nao | eltin puntanen |
| 4 | netewa netewa | eltin eltin |
| 5 | netewa netewa nao | eltin eltin puntanen |
読み込み中...