進数変換
【ご注意】このページの計算結果・情報は参考値です。正確性・最新性は保証できません。税務・法務・お金・設計・施工・安全などに関わる判断は、公式の資料と専門家の確認のうえ、ご自身の責任で行ってください。免責事項
入力した数を2進数・8進数・10進数・16進数に同時変換し、2〜36の任意の基数にも直します。必要なビット数、そのビット幅で表せる範囲、符号付きで読んだ場合の値、バイト単位の区切りも表示します。
進数変換ツール
変換のしくみ
進数とは「いくつ集まったら位が1つ上がるか」の決まりです。10進数は10、2進数は2、16進数は16で桁が上がります。ある基数の数を10進数に直すには、各桁の数字に基数の桁位置乗を掛けて足します。2進数の 11111111 なら 1×2⁷+1×2⁶+…+1×2⁰=255 です。
逆に10進数から他の基数へ直すには、その基数で割った余りを下の桁から並べます。255 を16で割ると商15・余り15、商15を16で割ると商0・余り15。余りを下から並べて 15,15 すなわち FF になります。16進数では10〜15を A〜F で表し、36進数まで広げると 0〜9 と A〜Z の36文字を使います。既定値の 255 は、2進数 11111111、8進数 377、16進数 FF、5進数 2010 です。
よく使う数の対応
| 10進数 | 2進数 | 8進数 | 16進数 | 意味 |
|---|---|---|---|---|
| 8 | 1000 | 10 | 8 | 1バイトの半分 |
| 15 | 1111 | 17 | F | 16進1桁の最大 |
| 16 | 10000 | 20 | 10 | 16進で桁上がり |
| 100 | 1100100 | 144 | 64 | — |
| 128 | 10000000 | 200 | 80 | 符号付き8ビットの境界 |
| 255 | 11111111 | 377 | FF | 1バイトの最大 |
| 1023 | 1111111111 | 1777 | 3FF | 10ビットの最大 |
| 65535 | 1111…1111(16個) | 177777 | FFFF | 2バイトの最大 |
ビット幅で表せる範囲
| ビット幅 | 符号なし | 符号あり(2の補数) | 主な用途 |
|---|---|---|---|
| 8ビット | 0〜255 | −128〜127 | 1バイト・色の1成分 |
| 16ビット | 0〜65,535 | −32,768〜32,767 | 音声サンプル・文字コード |
| 32ビット | 0〜4,294,967,295 | −2,147,483,648〜2,147,483,647 | 一般的な整数型・IPv4 |
| 64ビット | 0〜約1.8×10¹⁹ | 約−9.2×10¹⁸〜9.2×10¹⁸ | 大きな整数・時刻 |
プログラムでの書き方
| 基数 | 接頭辞 | 例(255) | 使う場面 |
|---|---|---|---|
| 2進数 | 0b | 0b11111111 | ビットの並びを直接書くとき |
| 8進数 | 0o(古い形では 0) | 0o377 | ファイルの権限(chmod 755) |
| 10進数 | なし | 255 | 通常 |
| 16進数 | 0x | 0xFF | 色・メモリ番地・バイト列 |
※入力した文字列はお使いのブラウザの中だけで処理され、サーバーには送信されません。結果は参考です。業務システムへの適用にあたっては、実装側の仕様をご確認ください。
進数変換の詳しい解説
私たちが日ごろ使う10進数は、指が10本あることに由来する習慣にすぎません。数そのものは基数を変えても同じで、表し方が変わるだけです。コンピュータが2進数を使うのは、電気が流れているかいないかという2つの状態で1桁を表せるからで、これがもっとも壊れにくい方法だからです。ただし2進数は桁数が多くて人間には読みにくいため、4桁をまとめて1桁で表せる16進数が実務でよく使われます。11111111 が FF になるように、2進数の桁数がちょうど4分の1になります。
16進数が便利なのは、この「4桁をまとめる」性質のためです。1バイトは8ビットなので、16進数ではちょうど2桁で表せます。色を #FF8800 と書くのは、赤・緑・青をそれぞれ1バイトずつ並べたものです。メモリの番地やファイルの中身をのぞくときに16進数が並ぶのも、バイト単位で読みやすいからです。8進数は3ビットをまとめる形で、ファイルの権限を chmod 755 のように書く場面に名残があります。
ビット幅の概念も押さえておきましょう。コンピュータは数を決まった桁数の箱に入れて扱い、8ビットの箱には0〜255までしか入りません。256を入れようとすると桁があふれ、0に戻ってしまいます。これが桁あふれで、古いゲームでスコアが一定値を超えると0に戻る現象の正体です。負の数を扱うときは2の補数という方式を使い、最上位のビットを符号の代わりにします。8ビットなら0〜127がそのまま、128〜255が−128〜−1として解釈されます。同じビットの並びでも、符号ありと読むか符号なしと読むかで意味が変わるのはこのためです。
任意の基数も同じ規則で扱えます。36進数まで対応しているのは、0〜9の10文字とA〜Zの26文字で合計36文字が使えるからです。短いIDを作るときに36進数や62進数(大文字小文字を区別)が使われるのは、同じ桁数でより多くの値を表せるためです。5進数や12進数のように日常では見かけない基数も、時間(60進数)や干支(12と10の組み合わせ)のように、実は身の回りに残っています。
手計算で変換するときのコツは、10進数を経由することです。ある基数から別の基数へ直接変換する規則を覚えるより、いったん10進数に直してから目的の基数に割り算で戻すほうが確実です。ただし2進数と16進数、2進数と8進数の間だけは例外で、それぞれ4ビット・3ビットずつまとめれば10進数を経由せずに変換できます。1111 1111 を 4桁ずつ区切って F F と読むだけです。このツールが区切り表示を持っているのは、この読み方を助けるためです。
業界・現場での使い方
プログラムのデバッグ
メモリの中身やレジスタの値を16進数で読み、2進数に直してビットの状態を確認します。
ネットワークの設定
IPアドレスやサブネットマスクを2進数に直し、境界を確認します。
色の指定
カラーコードの16進数を10進数に直し、RGB の各成分の値を確認します。
ファイル権限の設定
chmod の8進数を2進数に直し、読み・書き・実行の組み合わせを確かめます。
よくある間違い・注意点
- 入力と基数が合っていない — 2進数を選んで「9」を入れることはできません。使える文字は基数で決まります。
- 桁あふれに気づかない — 8ビットに256は入りません。ビット幅と値の範囲を確認します。
- 符号ありと符号なしを取り違える — 同じ 0xFF が 255 にも −1 にもなります。どちらで読むかを決めてから解釈します。
- 16進数の A〜F を10進数の数字と混同する — FF は「エフエフ」で255です。99ではありません。
- 先頭の 0x や 0b を値の一部と数える — 接頭辞は基数の目印です。このツールは自動で取り除きます。
関連する規格・公的資料
- Unicode コンソーシアム — Unicode の規格と符号位置の定義
- W3C(World Wide Web Consortium) — HTML の文字参照と仕様
- WHATWG HTML Standard — 名前付き文字参照の一覧と解釈の規定
- WHATWG Encoding Standard — ブラウザが扱う文字エンコードの仕様
- IETF(RFC の発行元) — RFC 3629(UTF-8)などの規格
- ITU(国際電気通信連合) — 国際モールス符号の勧告 ITU-R M.1677
- 総務省 電波利用ホームページ — 無線従事者・和文モールスの制度
- 日本産業標準調査会(JISC) — JIS X 0201・JIS X 0208 など文字集合の規格
- 日本規格協会(JSA) — JIS 規格票の発行
- 情報処理推進機構(IPA) — 文字情報基盤と安全な実装の手引き
- MDN Web Docs — parseInt・codePointAt などの仕様解説
- IEEE — 浮動小数点や整数表現の標準
- IEEE 754(数値の表現) — 整数と浮動小数点の標準的な表し方
- MDN Number.prototype.toString — 2〜36進数への変換の仕様
- JIS X 0001(情報処理用語) — 基数・ビットなどの用語の定義
※本ツールは公的基準に基づく参考計算です。医療・法務・税務の判断は最新の告示・規格および専門家の判断に従ってください。
よくある質問(FAQ)
255 は2進数でいくつですか?
11111111 です。8ビットすべてが1の状態で、1バイトで表せる最大の値です。
16進数の FF は10進数でいくつですか?
255 です。F が15を表し、15×16+15=255 になります。
なぜ16進数を使うのですか?
2進数の4桁をちょうど1桁で表せるためです。1バイト(8ビット)が2桁で書けて読みやすくなります。
任意の基数に変換できますか?
できます。2〜36の範囲で指定してください。10より大きい桁は A〜Z で表します。
符号付きとして読むとは?
最上位ビットを符号に使う2の補数方式のことです。8ビットでは128〜255が−128〜−1になります。
桁あふれとは何ですか?
決まったビット幅に収まらない大きさになることです。8ビットに256を入れると0に戻ります。
0x や 0b は何ですか?
プログラムで基数を示す接頭辞です。0xは16進数、0bは2進数、0oは8進数を表します。
区切り表示は何のためですか?
2進数の4桁ごと・8桁ごとに区切ると、16進数との対応やバイトの境目が読み取りやすくなります。
chmod の755はどう読みますか?
8進数です。2進数に直すと 111 101 101 で、所有者に読み書き実行、他に読みと実行を与える意味になります。