進数変換
2進数・8進数・10進数・16進数を相互に変換します。入力した進数を選んで数値を入力してください。
入力
10進数
—
※ 0以上の整数を対象とします。16進数の英字は大文字で表示します(入力は大小どちらでも可)。
進数対応 早見表
代表的な値の 10進・2進・8進・16進の対応です。よく使う値の確認にどうぞ。
| 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 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
| 1024 | 10000000000 | 2000 | 400 |
解説
進数(基数)とは、数を表すのに何種類の数字を使い、桁が1つ上がるごとに重みが何倍になるかという仕組みです。10進数は0〜9の10種類を使い1桁上がるごとに10倍、2進数は0と1の2種類で2倍ずつ、8進数は0〜7で8倍ずつ、16進数は0〜9とA〜Fの16種類で16倍ずつ重みが増えます。コンピュータ内部は電気のオン・オフに対応する2進数で動き、プログラミングでは2進数を短く表せる16進数(4桁の2進数=1桁の16進数)がよく使われます。
他の進数を10進数に直すには、各桁の数字に『基数の桁数乗(重み)』を掛けて合計します。たとえば2進数 1011 は 1×8 + 0×4 + 1×2 + 1×1 = 11(10進)です。16進数 FF は F(=15)×16 + F(=15)×1 = 255 になります。
逆に10進数から他進数へ直すには、その基数で割った余りを下の桁から並べます(繰り返し割り算)。たとえば10進数 13 を2進数にするには 13÷2=6余り1、6÷2=3余り0、3÷2=1余り1、1÷2=0余り1 で、下から読んで 1101 です。
代表的な対応として、10進数の255は、2進数で 11111111、8進数で 377、16進数で FF と表せます。16進数の1桁では A=10、B=11、C=12、D=13、E=14、F=15、そして 10(16進)=16(10進)です。1バイト(8ビット)は2進数8桁=16進数2桁で表せ、最大値は 11111111(2)=FF(16)=255(10) になります。
本ツールは、入力された進数の許可文字(2進なら0・1のみ、8進なら0〜7、16進なら0〜9・A〜F)をチェックし、許可外の文字が含まれていればエラー表示でガードします。16進数の A〜F は大文字・小文字どちらでも入力できます。
計算は内部で多倍長整数(BigInt)として扱うため、通常の数値型で起きる桁落ち(丸め誤差)なく、非常に大きな桁の値でも正確に変換できます。扱えるのは0以上の整数のみで、小数点付きの数や負の数は対象外としてガードされます。
よくある質問
2進数を10進数に直すには?
各桁の数字に2の累乗(…8・4・2・1)を掛けて合計します。たとえば 1011 は 1×8 + 0×4 + 1×2 + 1×1 = 11 です。本ツールでは2進数を選んで入力すれば自動で10進数を表示します。
10進数を2進数に直すには?
2で割った余りを下の桁から並べます。たとえば 13 は 13÷2=6余り1、6÷2=3余り0、3÷2=1余り1、1÷2=0余り1 で、下から読んで 1101 です。
16進数の A〜F は何を表しますか?
10進数の10〜15を1桁で表すための記号です。A=10、B=11、C=12、D=13、E=14、F=15 に対応します。大文字・小文字どちらでも入力できます。
16進数のFFは10進数でいくつですか?
FF = 15×16 + 15 = 255 です。これは1バイト(8ビット)で表せる最大値で、2進数では 11111111、8進数では 377 にあたります。
小数や負の数は変換できますか?
本ツールは0以上の整数のみに対応しています。小数点や符号(−)を含む入力はガードされ、変換対象外になります。
とても大きな桁でも正確に変換できますか?
はい。内部で多倍長整数(BigInt)として計算するため、通常の数値型で起きる桁落ち(丸め誤差)なく変換できます。
8進数や16進数がプログラミングで使われるのはなぜですか?
2進数は桁が長くなりがちですが、3桁の2進数=1桁の8進数、4桁の2進数=1桁の16進数というきれいな対応があり、2進数を短く読みやすく表せるためです。色コード(#FF0000 など)やメモリアドレスで16進数がよく使われます。