MCPで接続 →

計算を入力してください

公式

広告

結果

10進数(基数10)
255
対応する10進数の値
2進数(基数2) 11111111
8進数(基数8) 377
16進数(基数16) FF

このツールでできること

このツールは、コンピューターでよく使われる4つの進数――2進数(基数2)、8進数(基数8)、10進数(基数10)、16進数(基数16)――の間で整数を相互変換します。任意の値を入力し、その数値がどの進数で書かれているかを指定するだけで、4つすべての進数での表記が一度に表示されます。

使い方

値の入力欄に数値を打ち込み、プルダウンから元の進数(基数)を選ぶと、結果が表示されます。16進数では数字0〜9と英字A〜F(大文字・小文字は区別しません)が使用でき、先頭の 0x0b といったプレフィックスは自動的に取り除かれます。選んだ進数で使えない桁が含まれている場合、結果は0として扱われます。

計算式の仕組み

数値を10進数に読み替えるには、各桁の数字に「基数の累乗」(右端を0として桁位置を数える)を掛け、その積をすべて足し合わせます:

$$\text{値} = \sum_{i=0}^{k-1} d_i \cdot \text{基数}^{\,i}$$

逆方向に変換するには、10進数の値を目的の基数で繰り返し割っていきます。各回の余りが1桁分の数字となり、最後に出た余りから先頭に向かって並べると、変換後の数になります。

基数bにおける各桁の位取りを示す図。指数は右から左へ増加
各桁を位置に応じた基数のべき乗で掛け、合計します。

具体例

2進数の 1111 を例にとります。10進数では

$$1\times2^3 + 1\times2^2 + 1\times2^1 + 1\times2^0 = 8 + 4 + 2 + 1 = 15$$

です。15を16進数に変換すると、\(15 \div 16 = 0\) 余り \(15\) となり、15は数字 F に対応します。8進数では \(15 \div 8 = 1\) 余り \(7\) なので 17 となります。

同じ数を2進数・8進数・10進数・16進数で表した4本の色付きバー
1つの値を4つの記数法で並べて表示。

一般的な進法の対応値

コンピュータで使用される4つの位取り記数法は同じ値を共有しています。異なるのは基数(底)だけです。十進法(基数10)は日常的に使われる体系です。二進法(基数2)はデータが物理的に格納される方法です。八進法(基数8)と十六進法(基数16)はビットをグループ化するためのコンパクトな表記法です。以下の表は、4つすべての体系で最も頻繁に遭遇する値をまとめたものです。

十進法(基数10) 二進法(基数2) 八進法(基数8) 十六進法(基数16)
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
32 100000 40 20
64 1000000 100 40
128 10000000 200 80
255 11111111 377 FF
256 100000000 400 100
1024 10000000000 2000 400

255(8ビットバイトが保持できる最大値)が二進法では8つの1で構成され、十六進法ではFFであることに注目してください。一方、256は9ビット必要です。これらの境界値は色、メモリサイズ、ネットワークマスクで頻繁に現れます。

主な用語の解説

基数(底)
体系が使用する異なるデジット記号の個数であり、左へ移動するときに各位置に掛ける値です。十進法は基数10(数字0~9)、二進法は基数2(0~1)、八進法は基数8(0~7)、十六進法は基数16(0~9の後にA~F)です。位置\(i\)のデジット\(d_i\)は、合計値に\(d_i \cdot \text{基数}^{\,i}\)を寄与します。
ビット
バイナリデジットのことで、データの最小単位であり、単一の0または1を保持します。\(n\)ビットは\(2^n\)個の異なる値を表現できます。
ニブル
4ビットのグループです。ニブルは\(2^4 = 16\)個の値を保持できます。これはちょうど1つの十六進法のデジット(0~F)に対応します。このため、十六進法は二進法にきれいにマップされます。各十六進法のデジットは1つのニブルです。
バイト
8ビット(2つのニブル)のグループで、\(2^8 = 256\)個の値を表現でき、0から255までの範囲です。バイトは2つの十六進法のデジットで書かれます。例えば、FF = 255です。
最上位デジット(MSD)
左端のデジットで、最大の位置重みを持ちます(基数の最大乗)。二進法では最上位ビット(MSB)です。
最下位デジット(LSD)
右端のデジットで、最小の重み(\(\text{基数}^0 = 1\))を持ちます。二進法では最下位ビット(LSB)で、値が奇数か偶数かを決定します。
0bプレフィックス
C、Pythonなどで使用される規約で、リテラルが二進法であることを示します。例えば、0b1010は十進法で10を意味します。0bは記法に過ぎず、値の一部ではありません。
0xプレフィックス
十六進法のリテラルを示す標準的なマーカーです。例えば、0xFFは十進法で255を意味します。八進法はしばしば先頭の0または0oプレフィックスで表示されます。
十六進法のA~Fのデジット
十六進法は16個の記号が必要ですが、0~9の通常のデジットしか存在しないため、文字A~Fが値10~15を表します:A=10、B=11、C=12、D=13、E=14、F=15。大文字でも小文字でも記載できます。

よくある質問

16進数の英字にも対応していますか? はい。基数16ではA〜F(大文字・小文字どちらも)を入力できます。

負の数や小数も変換できますか? いいえ。このツールは0以上の整数のみに対応しています。

10進数の答えに桁区切りが付くのはなぜですか? 読みやすさのために付けています。2進数・8進数・16進数の出力は桁の位置自体が意味を持つコードなので、区切りなしで表示されます。

最終更新: