MCPで接続 →

計算を入力してください

公式

広告

結果

10進数の値
3
基数10
ビット数 2

2進数→10進数 変換ツールとは?

2進数→10進数の変換ツールは、基数2(0と1の数字だけを使う表記)で書かれた数値を、私たちが普段使っている基数10の数値に変換するものです。コンピュータはあらゆるデータを2進数で記憶・処理しているため、生のビット列、メモリダンプ、ネットワークマスク、プログラムの出力などから人が読める値を取り出すには、10進数への変換が欠かせません。

使い方

入力欄に2進数を入力します。たとえば 101101 のように入力すると、ツールが10進数の値とビット数を表示します。0と1以外の文字は無視されるため、1011 0101 のように空白で区切ったビット列をそのまま貼り付けても問題ありません。

計算式の解説

各2進数の桁(ビット)は、右端を0として位置を数え、その位置に応じて2をその回数だけ累乗した「位の重み」を持ちます。10進数の値は、すべてのビットにそれぞれの重みを掛けて合計したものです。

$$\text{Decimal} = \sum_{i=0}^{n-1} d_i \cdot 2^{\,n-1-i}, \quad d_i \in \text{Binary Number}$$

右端のビットの重みは \(2^0 = 1\)、その次が \(2^1 = 2\)、続いて \(2^2 = 4\)、\(2^3 = 8\) …というように増えていきます。

Binary digits aligned under their positional powers of two
Each bit is multiplied by a power of two based on its position.

具体例

101101 を変換してみましょう。右端から重み 1, 2, 4, 8, 16, 32 を当てはめると、次のようになります。

$$(1\cdot32) + (0\cdot16) + (1\cdot8) + (1\cdot4) + (0\cdot2) + (1\cdot1) = 32 + 8 + 4 + 1 = 45$$したがって、2進数 101101 は10進数の 45 に等しくなります。

Step-by-step conversion of binary 1011 into decimal by summing weighted bits
Summing the weighted bits of 1011 gives the decimal value 11.

2のべき乗の位取り重み

2進数では、各ビットは2のべき乗に等しい位取り重みを持ちます。最も右のビット(位置0)の重みは\(2^0 = 1\)であり、左方の各位置では重みが倍になります。手作業で変換するには、各ビットにその重みを掛け、結果を加えます:

$$\text{10進数} = \sum_{i=0}^{n-1} d_i \cdot 2^{\,i}$$

ここで、\(i\)は右(最下位ビット)から位置をカウントし、0から始まります。

ビット位置 \(i\) べき乗 \(2^i\) 10進重み
0 \(2^0\) 1
1 \(2^1\) 2
2 \(2^2\) 4
3 \(2^3\) 8
4 \(2^4\) 16
5 \(2^5\) 32
6 \(2^6\) 64
7 \(2^7\) 128
8 \(2^8\) 256
9 \(2^9\) 512
10 \(2^{10}\) 1,024
11 \(2^{11}\) 2,048
12 \(2^{12}\) 4,096
13 \(2^{13}\) 8,192
14 \(2^{14}\) 16,384
15 \(2^{15}\) 32,768
16 \(2^{16}\) 65,536

8ビットバイトでは最大値は\(2^8 - 1 = 255\)(8ビット全て1に設定)で、16ビットでは\(2^{16} - 1 = 65{,}535\)です。

さらに計算した例

各例では、すべてのビットを上の表からの位取り重みと対応させ、ビットが1である重みのみを保ち、加算して10進値を求めます。

例1:11111111(8ビット全て1)

すべてのビットが1なので、位置7から位置0までの8つの重みすべてを加えます:

$$128 + 64 + 32 + 16 + 8 + 4 + 2 + 1$$

合計は255で、8ビットバイトが保持できる最大値です。

例2:10000000

最も左のビット(位置7)のみが1で、他のすべての位置は0を寄与します:

$$1\cdot128 + 0\cdot64 + 0\cdot32 + 0\cdot16 + 0\cdot8 + 0\cdot4 + 0\cdot2 + 0\cdot1$$

これは単一の重み\(2^7\)に単純化され、128になります。

例3:110010101(9ビット)

ビットを位置の重みとともに記述すると、1のビットは位置8、7、4、2、0にあります:

ビット 1 1 0 0 1 0 1 0 1
位置 8 7 6 5 4 3 2 1 0
重み 256 128 64 32 16 8 4 2 1

ビットが1である重みのみを加えます:

$$256 + 128 + 16 + 4 + 1$$

10進の結果は405です。10進数から2進数へのコンバーター405を入力して、110010101が返されることで逆方向を確認できます。

よくある質問

8ビットで表せる最大の2進数は? 11111111 で、10進数では 255(\(2^8 - 1\))になります。

先頭にゼロを付けても大丈夫? はい。先頭のゼロは値を変えません。0010 は 10 と同じで、どちらも10進数の 2 です。

小数の2進数にも対応している? いいえ。このツールは整数の2進数のみを変換します。小数点以下の部分には対応していません。

最終更新: