進数変換

2進数・8進数・10進数・16進数を相互に変換します。入力した進数を選んで数値を入力してください。

入力

入力する進数

10進数で入力(0〜9)

10進数

—

※ 0以上の整数を対象とします。16進数の英字は大文字で表示します(入力は大小どちらでも可)。

進数対応 早見表

代表的な値の 10進・2進・8進・16進の対応です。よく使う値の確認にどうぞ。

10進数 2進数 8進数 16進数
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F
16100002010
25511111111377FF
256100000000400100
1024100000000002000400

解説

進数(基数)とは、数を表すのに何種類の数字を使い、桁が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進数がよく使われます。