「2進数」はこの項目へ転送されています。有理数を含む2進数については「p進数」をご覧ください。
二進法(にしんほう)とは、二を底(てい、基(base)とも)として、底の冪の和で数を表現する方法である。
英語でバイナリ (binary) というが、これはラテン語「binarius」に由来する語で、「binary」と「binarius」は本来「二個一組」「二つから成る」を意味する語である(用例:バイナリ空間分割)。目次
1 記数法
1.1 加算表
2 デジタル機器での使用
2.1 負数の扱い
3 他のN進法から二進法への変換方法
4 命数法
5 その他
6 歴史
7 脚注
7.1 注釈
7.2 出典
8 関連項目
記数法 二進法で表された数のイメージ
二を底とする位取り記数法を二進記数法と呼ぶ。混乱を防ぐために二進法であることを示す場合には、下付の 2 を用いて (110)2 などとすることがある。二進記数法で a N a N − 1 … a 1 a 0 . a − 1 a − 2 … {\displaystyle a_{N}a_{N-1}\ldots a_{1}a_{0}.a_{-1}a_{-2}\ldots }
(各位の値 ai は 0 か 1)と表される数は二進法の定義から、 a N 2 N + a N − 1 2 N − 1 + ⋯ + a 1 2 + a 0 + a − 1 2 + a − 2 2 2 + ⋯ {\displaystyle a_{N}2^{N}+a_{N-1}2^{N-1}+\cdots +a_{1}2+a_{0}+{a_{-1} \over 2}+{a_{-2} \over 2^{2}}+\cdots }
という数を表している(ここで 2 は十進法の 2 である)。
「二進記数法で記された数」という意味として二進数という語が使われることがある。しかし、二進数という数の体系(例えば「整数」といったような)があるわけではない。また、p進数における p = 2 の場合とは全く異なる。
二進法を用いれば 0 と 1 の二種類の数字のみで零を含む任意の自然数が表現可能であり、負号と合わせることで整数が表現可能である。更に小数点を合わせて四種類の記号のみで実数の表現が可能である。
別の言い方をすると、「もし数字が 0 と 1 しか無かったら」を実現した方法が二進法である。 +01 電子式コンピュータの電子回路などのデジタル回路(デジタル論理回路)、磁気ディスク等の記憶メディアでは、電圧の高低、磁極の N/S など、物理現象を二状態のみに縮退して扱う(離散化などと言う[注 1])ので、それに、真と偽の2つの値(2値の真理値)のみを使用する二値論理(しばしば、電子的には H と L、論理的には T と F という記号が使われる)をマッピングする。更にそこで数値を扱うには、それに「0 と 1」の二進法をマッピングするのが最適である。 多くの応用で見られるように桁数が有限の場合は、数学的に言うなら「有理数の部分集合」が表現されているわけであるが、通常は「有限精度の実数」が表現されていると解釈される。 このため、コンピュータやデジタル機器は二進数が使用される。 二進数にもデメリットがあり、数が大きくなる程桁が増えてしまい、0と1だけの並びとあって人間には見にくい。 例えば十進法の65は二進法だと1000001と7桁になってしまう。 この場合は二進法との相性がよい十六進法が使われ、二進法で1000001は十六進法だと41に縮められる(詳しくは十六進法を参照)。 2種類の記号のみで、負の範囲の値(負の範囲の整数)も扱うには、広く一般的に用いられている方法は、最上位ビット(MSB)の重みを、2Nではなく −(2N) であるとするものである(2の補数を参照)。この方法は、そのビットパターンが、加減(及び、乗)の演算において特別な処理が不要なものになる、という特長を持つ。ただし、溢れ(オーバーフロー)の扱いが違ってくる(これは、例えばx86プロセッサにおける、キャリーフラグとオーバフローフラグの違いのことである(ステータスレジスタ#キャリーとオーバーフローを参照))。また固定長の場合に表現可能な範囲が、最小の値(負の側の絶対値が最大の値)のほうにひとつはみ出している、という扱いが面倒な場合がある特徴があって、たとえば8ビットで表現可能な範囲は −128, −127, ? −2, −1, 0, 1, ? 126, 127 というようになっている。これに関しては、例えばC言語の標準規格のように、他の表現法も考慮し、全ての符号付き固定長のデータ型は、signed char であれば −128 までではなく −127 まで、などといった仕様になっている、といった場合がある。 「十進法から二進法への変換方法」などといったものを考える必要はない。
加算表
001
1110
デジタル機器での使用「コンピュータの数値表現」も参照
負数の扱い「符号付数値表現」も参照
他のN進法から二進法への変換方法