T

Text Machine

強力なテキストツールを、ブラウザで

10進数 ↔ 2進数 変換ツール

10進数を入力して2進数に変換するか、2進数を入力して10進数に変換します。結果は他のボックスに表示されます。

10進数 ↔ 2進数 変換ツール
2進数について

2進数は基数2の数値システムで、0と1の2つの数字のみを使用します。2進数の各位置は2のべき乗を表し、最も右側は2の0乗(1)から始まります。

例えば、2進数の1101は次のように計算されます:

1 × 2^3 + 1 × 2^2 + 0 × 2^1 + 1 × 2^0 = 8 + 4 + 0 + 1 = 13(10進数)

10進数 ↔ 2進数 変換ツール の使い方

  1. 1

    数値を入力する

    10進数を「Decimal Value」ボックスに、または2進数を「Binary Value」ボックスに入力します。

  2. 2

    変換を確認する

    入力するそばから、対応する結果がもう一方のフィールドに即座に表示されます。ボタンを押す必要はありません。

  3. 3

    手順を確認する

    「Conversion Steps」セクションで、2進数を導く2で割っていく過程を追えます。

  4. 4

    結果をコピーする

    「Copy Decimal」または「Copy Binary」で値を取得するか、「Swap」で変換方向を入れ替えます。

10進数を2進数に変換する

基数10から基数2へ

10進数は、0から9までの10個の数字から成る基数10の数値システムで、人々が日々使っているものです。2進数は、0と1のたった2個の数字から成る基数2のシステムで、回路が2つの安定した状態を持つことから、コンピューターが内部で使っています。10進数を2進数に変換することは、同じ量を機械が記憶する形で表すことです。値は変わらず、表記だけが異なります。10進数の13と2進数の1101は、同じ量です。

手作業で変換する信頼できる方法は2つあります。2による繰り返し除算は、2進数の桁を下から上へ組み立て、2のべき乗の減算は、上から下へ組み立てます。どちらも同じ答えになります。このツールは除算法を1ステップずつ示すので、最終的なビットの並びを見るだけでなく、結果がどう導かれるかを正確にたどれます。

繰り返し除算法

除算法が機能するのは、2で割るたびに2進数の桁が1つずつはがれていくからです。数を2で割り、余り(常に0か1)を書き留め、次に商を2で割ってその余りを記録し、商が0になるまで続けます。余りが2進数の桁ですが、最下位から先に出てくるので、最後のステップでそれらを逆順に、つまり最後の余りから最初の余りへ向かって読みます。

その論理は、位取りを鏡に映したものです。2で割ることは、その数に2がいくつ収まるかを問い、余りは1の位のビットが立っているかどうかを教えます。次の除算はすべてを2進数で1桁下げ、2の位のビットについて問い、以下同様に続きます。各ステップがちょうど1ビットを生むので、ある数はその2進数の桁数とちょうど同じ回数の除算を必要とします。

実例:13を2進数に

10進数の13を繰り返し除算で変換します。13を2で割ると、商6、余り1。6を2で割ると、商3、余り0。3を2で割ると、商1、余り1。1を2で割ると、商0、余り1。商が0になったので、ここで止めます。

余りを出てきた順、すなわち 1、0、1、1 で集め、それを逆順にして最上位から先に読むと、1101 になります。よって10進数の13は2進数の1101です。位取りで確かめられます。1101 は 8 + 4 + 0 + 1 で、ちょうど13に戻ります。このツールの「変換ステップ」パネルは、これらの除算を1つずつ並べて示してくれます。

2のべき乗法

2つ目の方法は、位取りを使って上から下へ答えを組み立てます。対象の数を超えない2のべき乗、すなわち 1、2、4、8、16、32、64、128 などを並べ、収まる最大のものを見つけて引き、その余りで繰り返します。使った各べき乗はその列に1を置き、飛ばした各べき乗は0を置きます。

13の場合、収まる最大の2のべき乗は8で、5が残ります。5に収まる最大のべき乗は4で、1が残ります。4はそれ以上割れず、2は大きすぎ、1がちょうど収まって0が残ります。よって 8、4、1 の列を使い、2の列を飛ばしたので、1101 になります。これは除算法と同じ結果です。2のべき乗を暗記してしまえば、こちらのほうが速いと感じる人も多いでしょう。

パディング、先頭のゼロ、そしてバイト幅

数の素の2進数の形には先頭のゼロが付きません。ちょうど10進数の13を 0013 と書かないのと同じです。しかしコンピューターは数を固定幅の枠に記憶するので、同じ値はしばしば左側を標準のサイズまで詰められます。1バイトとして、13 は 00001101 と書かれます。意味のあるビット 1101 に、8つの位置を埋めるための4つの先頭ゼロが付いています。ゼロは値を変えず、幅に合わせて詰めるだけです。

幅の選択が重要なのは、それが収まる値の範囲を決めるからです。8ビットは0から255、16ビットは0から65535を保持し、以下同様です。ここで変換すると自然な2進数表現が得られ、それを文脈が必要とする幅へ頭の中で詰めることができます。このツールはまた、安全な整数の精度を超えるほど大きな数に対しては、不正確な結果を返すのではなく拒否することで、誤りを防いでいます。

負の数と小数

この変換ツールは、最もよく出会うケースである非負の整数を扱います。とはいえ、より難しい2つのケースがほかでどう扱われるかを知っておく価値はあります。コンピューターは文字どおりのマイナス記号を記憶しません。代わりに、2の補数と呼ばれる方式で負の整数を表します。これは最上位ビットが符号を示し、負の値は固定幅の中でビットを反転して1を足すことで符号化されます。

小数は、また別の仕組みを使います。2進小数点の後の部分は、2の負のべき乗、すなわち2分の1、4分の1、8分の1などから組み立てられ、0.1 のようなほとんどの10進小数は2進数では正確に書けません。これが、浮動小数点演算でときどき見られる小さな丸め誤差の根本原因です。日常的な整数の変換には、上で述べた除算法と2のべき乗法だけで十分です。

どこで役立つか

10進数から2進数への変換は、コンピューターサイエンス教育の中核的なスキルであり、よくある試験問題でもあります。人間の数と機械の記憶との関係を具体的にしてくれるからです。13 を手作業で 1101 に変えられるようになれば、データのサイズ、整数のオーバーフロー、ビット操作といった考え方がずっと理解しやすくなります。

実用的でもあります。プログラマーは、ビットフラグを立てたり、ビットマスクを作ったり、低レベルのデータについて考えたりするために、10進数の値を2進数に変換します。ネットワークエンジニアは、サブネットの境界を割り出すために、10進数の IP オクテットを2進数に変えます。デジタル電子回路やマイコンの作業は、人が指定する10進数と、ハードウェアが実際に使う2進パターンとの間を絶えず行き来しており、手早い1ステップずつの変換ツールが、その翻訳を正確に保ってくれます。

よくある質問

双方向に変換できますか?
はい。10進数を入力すれば2進数が、2進数を入力すれば10進数が得られます。結果は反対側のフィールドに自動で入ります。
変換の計算過程を見られますか?
はい。「Conversion Steps」パネルには、各2で割る操作とその商・余りが表示されるので、答えだけでなく計算方法も学べます。
有効な2進数の入力とは何ですか?
2進数フィールドでは0と1だけが受け付けられます。それ以外の文字を入力すると入力エラーの警告が表示されるため、常に正しい2進数を変換できます。
数値の大きさに上限はありますか?
安全な整数の精度を超える非常に大きな10進数は、すべての変換を正確に保つために「Number Too Large」メッセージとともに拒否されます。
データのプライバシーは守られますか?
はい。すべての変換はブラウザ内でローカルに行われるため、入力した数値がアップロードされることはなく、ツールは登録不要で無料で利用できます。

関連ツール

こちらの便利なツールもどうぞ

2進数 ↔ 10進数コンバーター

Unixタイムスタンプ変換

JSON ↔ CSV 変換

JSON ↔ YAML 変換

CSVをJSONに変換

テキスト ↔ バイナリ変換