2進数 ↔ 10進数コンバーター
2進数(基数2)と10進数(基数10)の数値システム間で変換します。どちらかのフィールドに値を入力して変換を確認してください。
2進数は0と1のみを使用します
標準の10進数システム(0〜9の数字)
有効な2進数(0と1で構成)を2進数フィールドに入力すると、対応する10進数が表示されます。または、10進数フィールドに10進数を入力すると、対応する2進数が表示されます。
例:2進数 '1101' は10進数 '13' です
2進数 ↔ 10進数コンバーター の使い方
- 1
2進数を入力する
0と1からなる2進数を入力フィールドに入力するか貼り付けます。
- 2
10進数に変換する
変換を実行すると、2進数の値が即座に10進数(base-10)の値に変換されます。
- 3
結果を確認する
出力エリアに表示された10進数を確認し、そのまま使うか検算できます。
- 4
結果をコピーする
10進数の結果をクリップボードにコピーし、コード、宿題、ドキュメントなどで利用します。
2進数から10進数への変換
2つの数値システム、同じ値
10進数は私たちが日常的に使っている基数10のシステムで、0から9までの10個の数字で構成されます。2進数はコンピューターが内部で使う基数2のシステムで、0と1というわずか2個の数字だけで構成され、その1桁ずつをビットと呼びます。2進数を10進数に変換しても量そのものは変わりません。同じ値を、人が最も読みやすい表記で書き直しているだけです。「11」という数は2進数では1011、10進数では11であり、どちらもまったく同じ量を指しています。
2つのシステムが共存している理由はハードウェアにあります。コンピューターの回路にはオンとオフという2つの安定した状態があり、これが1と0にきれいに対応するため、機械は2進数で動作します。一方、10本の指を持つ人間は基数10を採用しました。このツールのようなコンバーターは両者をつなぐ橋渡しです。機械にとって自然な形を受け取り、人にとって扱いやすい等価な形を生成します。逆方向の変換も行えます。
位取り記数法と位の値
どちらのシステムも位取り記数法であり、各桁の寄与はその桁が置かれた位置によって決まります。10進数では、右から順に一の位、十の位、百の位…と続き、これは10の累乗の連なりです。2進数も同じ仕組みですが、こちらは2の累乗を使うため、右から順に1、2、4、8、16、32、64、128…と、各位が右隣の位の2倍になっていきます。
2進数を読むには各位を見ていき、1がある位ではその位の値を加え、0がある位では何も加えません。いちばん右のビットは一の位(2の0乗)、その次は二の位(2の1乗)、続いて四の位、八の位…となります。1のビットが立っている位の値をすべて合計すると、10進数の値になります。このたった1つのルールが変換のすべてです。
実例:1011を10進数に
2進数の1011を取り上げ、右から順に位を割り当てます。いちばん右のビットが1の位、続いて2の位、4の位、8の位です。これらの位に照らしてビットを読むと、8の位に1、4の位に0、2の位に1、1の位に1があります。
次に、1が立っている位の値を足し合わせます。8 + 0 + 2 + 1です。合計は11なので、2進数の1011は10進数の11に等しくなります。1つだけある0は何も寄与しません。それこそが0が置かれている理由で、4の位を空にしておくためです。2進数から10進数への変換は、数がどれほど長くても、すべてこの2の累乗の足し算です。
1バイトを使った2つ目の例
8ビットの値である11001000、つまり1バイトを試してみましょう。8つの位は右から順に1、2、4、8、16、32、64、128という位の値を持ちます。1のビットがどこに立っているかを見ると、128の位に1、64の位に1、8の位に1があり、それ以外はすべて0です。
これらを足し合わせます。128 + 64 + 8 は200なので、11001000は10進数の200です。8ビットという固定幅で扱うことはよくあります。なぜなら1バイトは0(00000000)から255(11111111)までの範囲をカバーするからです。バイトのいちばん左のビットが128に相当し、右へ向かって値が1まで半分ずつになっていくと知っていれば、たいていのバイトは暗算ですばやく変換できます。
先頭のゼロと数値の長さ
先頭のゼロは2進数の値を一切変えません。これは10進数の場合とまったく同じです。1011、01011、00001011はいずれも10進数の11に等しくなります。高い位の0は合計に何も寄与しないからです。コンピューターはしばしば2進数を固定幅に揃えます。1バイトなら8ビット、より大きな型なら16ビットや32ビットといった具合です。これは桁を揃えるためであり、余分なゼロに意味があるわけではありません。
ですから、先頭にゼロのある2進数の文字列を貼り付けるときは、ゼロを残しても取り除いてもかまいません。10進数の結果は同じです。ただし全体の長さは表現できる最大値を決めます。nビットあれば0から2のn乗マイナス1までを表せます。8ビットは255まで、16ビットは65535までです。このツールは長い文字列も扱えますが、極端に大きな値は標準的な数値の精度を超えることがあります。日常的なバイトや整数であれば結果は正確です。
高速変換のための2倍法
位の値を書き出さずに済む、すばやい暗算法があります。ビットを左から右へ読み、まず累計を0から始めます。各ビットについて、累計を2倍してから現在のビットの値を足します。末尾まで来たとき、その累計が10進数の値です。これがうまくいくのは、各ステップで、それまでに積み上げたものすべてを2進数で1桁ぶん左へずらしているからです。
これを1011に適用してみましょう。0から始めます。最初のビットは1で、0を2倍すると0、それに1を足して1。2番目のビットは0で、1を2倍すると2、それに0を足して2。3番目のビットは1で、2を2倍すると4、それに1を足して5。4番目のビットは1で、5を2倍すると10、それに1を足して11。答えは11で、位の値を使う方法と一致します。2倍法は、ある位がどの2の累乗を表すかを思い出す必要がないため、長い数では多くの場合こちらのほうが速くなります。
なぜこれが重要なのか
2進数から10進数への変換は、コンピューターの仕組みを学ぶうえで基礎となるものであり、コンピューターサイエンスの講義や認定試験でも定番の話題です。1バイトとは2の累乗の合計にすぎないと理解すると、データのサイズやメモリ、数値の範囲をめぐる謎が解け、ビット演算や2の補数による整数といった話題を理解するための前提が身につきます。
実践的な用途もあります。ネットワークエンジニアは2進数のオクテットを10進数に変換して、IPアドレスやサブネットマスクを読み取ります。プログラマーはデバッグ中に、2進数リテラルやレジスタの値、ビットフラグを読みやすい数値へ翻訳します。1と0が並んだ文字列を前にして、それが表す量を知りたくなったときはいつでも、この変換が頼りになります。そして位の値ごとの内訳を目で見ることで、ただ答えを渡されるのではなく、その方法そのものが身につきます。
よくある質問
2進数から10進数への変換はどのように行われますか?
入力に使える文字は何ですか?
変換できる2進数の大きさに上限はありますか?
ここで10進数を2進数に戻せますか?
このツールは無料で、ブラウザ内でオフライン動作しますか?
関連ツール
こちらの便利なツールもどうぞ