使い方
数を入力し、それが何進数で書かれているか(2進数・8進数・10進数・16進数)を選んで変換するを押します。同じ値が4つの進数でまとめて表示され、それぞれコピーできます。あわせて必要なビット数、左側に0を補って8ビット(1バイト)単位にそろえた2進数、そして2進数以外を入力したときは2で割り続ける計算の途中式が表で表示されます。
2進数のしくみ:位の重みは2のべき乗
10進数では、位が1つ左へ進むごとに重みが10倍になります(一の位、十の位、百の位)。2進数では重みが2倍ずつになり、右から1、2、4、8、16、32、64、128です。2進数の1桁(ビット)は0か1なので、2進数は「どの2のべき乗を足すか」を表しているだけです。11111111は8ビットすべてが1なので、128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255。これが1バイトに入る最大の数で、256からは9ビット必要になります。進数変換は高校の「情報Ⅰ」や基本情報技術者試験などで扱われる基本の内容です。
10進数を2進数に変換するやり方
数を2で割ってあまり(0か1)を書き、商をまた2で割る、という計算を商が0になるまで続けます。あまりを下から上へ読んだものが2進数です。37の場合:
- 37 ÷ 2 = 18 あまり 1
- 18 ÷ 2 = 9 あまり 0
- 9 ÷ 2 = 4 あまり 1
- 4 ÷ 2 = 2 あまり 0
- 2 ÷ 2 = 1 あまり 0
- 1 ÷ 2 = 0 あまり 1
最後のあまりから順に読むと100101。検算:32 + 4 + 1 = 37。
2進数を10進数に変換する計算方法
各ビットにその位の重み(2のべき乗)を掛けて足します。101101では、1が立っている位の重みは32、8、4、1なので、32 + 8 + 4 + 1 = 45。式で書くと 1×2⁵ + 0×2⁴ + 1×2³ + 1×2² + 0×2¹ + 1×2⁰ です。0の位は何も足さないので、1の位だけを数えれば十分です。
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 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 100 | 1100100 | 144 | 64 |
| 127 | 1111111 | 177 | 7F |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
| 1,000 | 1111101000 | 1750 | 3E8 |
| 1,024 | 10000000000 | 2000 | 400 |
2進数と16進数・8進数:桁をまとめて変換
16進数は0〜9と、10〜15を表すA〜Fを使います。16 = 2⁴ なので、16進数の1桁はちょうど2進数の4桁にあたります。2進数を右から4桁ずつ区切り、それぞれを16進数の1文字に置き換えるだけです。たとえば1010 0110はA6。1バイトは必ず16進数2桁(00〜FF)になるため、メモリのアドレス、MACアドレス、Webの色指定 #FF8800(赤FF・緑88・青00)などは16進数で書かれます。
8進数は0〜7を使い、1桁が2進数の3桁にあたるので、右から3桁ずつ区切ります。8進数の777は2進数で111 111 111、10進数では511、16進数では1FFです。いまではLinuxのファイルのアクセス権でよく見かけ、chmod 755は111 101 101、つまりrwxr-xr-xを意味します。
例:16進数のFFをすべての進数で
Fは2進数で1111なので、FFは11111111。2のべき乗を足すと10進数で255、同じビットを右から3桁ずつ区切ると(011 111 111)8進数で377になります。ビット数は8、ちょうど1バイトです。
8・16・32・64ビットで表せる最大の数
| ビット幅 | 最大値 | 16進数 |
|---|---|---|
| 8ビット | 255 | FF |
| 16ビット | 65,535 | FFFF |
| 32ビット | 4,294,967,295 | FFFFFFFF |
| 64ビット | 18,446,744,073,709,551,615 | FFFFFFFFFFFFFFFF |
nビットでは0から2ⁿ − 1までの2ⁿ通りの値を表せます。位取りではない数の書き方ならローマ数字変換、数を素数の積に分けるなら素因数分解もどうぞ。
よくある質問
10を2進数にするといくつ?
10は2進数で1010です。10 ÷ 2 = 5 あまり0、5 ÷ 2 = 2 あまり1、2 ÷ 2 = 1 あまり0、1 ÷ 2 = 0 あまり1。あまりを下から読むと1010で、8 + 2 = 10になります。
負の数は2進数でどう表しますか?
コンピューターはビット数を決めたうえで「2の補数」を使います。絶対値の全ビットを反転して1を足す方法で、8ビットなら−1は11111111、−128は10000000です。これは符号なしの255や128と同じ並びなので、ビット数と表し方を先に決めておく必要があります。このツールは0以上の整数だけを扱います。
小数を2進数に変換できますか?
このツールではできません。小数点以下は2の負のべき乗で表し(2進数の0.1は1/2、0.01は1/4)、10進数の小数の多くは2進数では終わりません。0.1は0.000110011…と続くため、多くのプログラミング言語で0.1 + 0.2がぴったり0.3になりません。
0b・0o・0xは何の意味ですか?
多くのプログラミング言語で進数を示す接頭辞です。0bは2進数、0oは8進数、0xは16進数を表し、0b11111111、0o377、0xFF、255はすべて同じ数です。このツールは選んだ進数の接頭辞を受け付けて取り除きます。
ある数を表すには何ビット必要ですか?
その数を超えない最大の2のべき乗を探し、指数に1を足します。255は2⁸ = 256より小さいので8ビットに収まり、256には9ビット必要です。「ビット数」の行がこの値で、「必要なバイト数」はそれを8ビット単位に切り上げたものです。
最終更新日:2026年10月15日