16進数変換ツール
無料オンライン基数変換ツール。16進数、10進数、2進数、8進数および2-36進数間の即時相互変換に対応。小数対応、Decimal.js高精度アルゴリズム採用、登録不要、ブラウザ内で完結。
関連おすすめ
16進数変換ツールとは?
16進数変換ツールは、異なる位取り記数法(基数)の間で数値を変換するツールです。最も一般的なのは16進数(base-16)、10進数(base-10)、2進数(base-2)、8進数(base-8)間の相互変換です。
16進数は16個の記号を使用:0-9で値0から9、A-Fで値10から15を表します。16進数の1桁は2進数の4桁(ニブル)に正確に対応するため、コンピューティングで広く使用されます。16進数2桁は1バイト(00~FF = 0~255)を表します。
2進数(base-2)は0と1のみを使用しコンピュータの基礎言語です。8進数(base-8)は0-7を使用します。10進数(base-10)は人間が日常的に使用する標準の数値システムです。
この変換ツールは2から36進数をすべてサポートします。10を超える基数ではa-zの文字を数字として使用します。負数と小数にも対応し、高精度演算を採用しています。
ユースケース
- #FF5733のような16進数カラーコードをRGBの10進値に変換(Web開発)
- デバッグ時にメモリアドレスや16進ダンプを読みやすい10進数に変換
- ネットワークパケットのバイナリデータを16進数・10進数に変換してプロトコル解析
- コンピュータサイエンスの授業での基数変換の学習・練習
- プログラミングログの16進値を10進数・2進数に変換
- Unixファイルパーミッションの8進数と10進数chmod値を相互変換
使い方
- ページ上部の入力ボックスに数値を入力
- ドロップダウンで入力する数値の基数(進数)を選択(2進数から36進数まで)
- 2進数、8進数、10進数、16進数など全ての進数の変換結果を即時表示
- 任意の結果カードをクリックすると入力がその進数に切り替わり変換を続行
- 結果カード右上のコピーアイコンで変換値をクリップボードにコピー
- 「その他の基数(2-36)」を展開すると2から36進数の全結果を表示
特徴
- 2進数から36進数まで対応:2進数(2)、8進数(8)、10進数(10)、16進数(16)など
- Decimal.jsによる高精度計算で整数・小数ともに正確
- 入力するだけでリアルタイム変換、ボタン操作不要
- 各進数の結果にワンクリックコピーボタン付き
- 負数と小数に対応、小数部は最大20桁
- ブラウザ内で実行、データ送信なし、登録不要
進数エンコーディング比較:どれを使うべきか?
2進数、8進数、10進数、16進数、Base64 にはそれぞれ適した用途があります。誤って選ぶと容量が倍になったり、書き間違いが増えたり、URL 互換性の問題が発生します。「誰に見せるのか、どこに置くのか、どれくらいコンパクトにするか」を先に考えてから、具体的なエンコーディングを選びましょう。
2進数 vs 8進数 vs 10進数 vs 16進数:典型的な使用シーン
4 つの主要な進数はそれぞれ得意分野があります。「典型シーン / コンパクトさ / 人間可読性 / 注意点」で判断するのが、数字そのものより確実です。
| 基数 | 典型シーン | コンパクトさ | 人間可読性 | 注意点 |
|---|---|---|---|---|
2進数 (base-2) | 低層ハードウェア、ビットマスク、ブールプロトコル、プロトコルフィールド | 極低(1 bit / 文字) | 極低(人目での識別が困難) | エンドユーザーに直接提示することはほぼなく、低層で 16 進数に置き換わることが多い |
8進数 (base-8) | Unix ファイル権限(chmod 755)、歴史的な PDP-11 アセンブリ | 低い(3 bit / 文字) | 中程度(短い数字は読みやすい、長さはやや長め) | 現代のアプリではほとんど使われない;Python 2 の `0o755` は Python 3 でも使えるが主流ではない |
10進数 (base-10) | ユーザー入出力、ビジネスロジック、設定パラメータ | 中(約 3.32 bit / 文字) | 最高(人間の自然言語) | 圧縮率は 16 進数に劣る;バイナリデータのデバッグには事前変換が必要 |
16進数 (base-16) | カラーコード、メモリアドレス、バイトストリーム、MAC/UUID、バイトコード | 高い(4 bit / 文字、1 バイト = 2 文字) | 良い(コンパクト + バイト境界整列) | 大小文字の一貫性(A-F vs a-f)と 0x プレフィックスの曖昧さに注意 |
16進数 vs Base64 エンコーディング:どちらを使うべきか?
16進数と Base64 はどちらもバイトのテキスト表現ですが、適した用途はまったく異なります。「対象メディア / コンパクトさ / 人間可読性 / URL 互換性」で判断すれば、大幅な手戻りを避けられます。
| 次元 | 16進数 | Base64 |
|---|---|---|
文字セット | 0-9 + A-F(16 文字) | A-Z + a-z + 0-9 + + / (64 文字) |
バイトあたり文字数 | 2 文字 / バイト | 約 1.33 文字 / バイト |
コンパクトさ | 中程度(1 バイト → 2 文字) | 高い(3 バイト → 4 文字) |
URL 安全性 | ✓ 完全に URL 安全 | ✗ 標準 Base64 は + と / を含むため、URL-safe Base64 変種が必要 |
人間可読性 | 良い(デバッグ、バイナリダンプに親和的) | 悪い(ランダムな文字で境界が識別困難) |
向いているシーン | カラーコード、メモリアドレス、MAC、UUID、デバッグログ、バイナリファイルプレビュー | データ URI、メール添付(MIME)、API トークン、JWT、CSS/HTML への画像埋め込み |
向いていないシーン | URL パラメータが長い(base64url を検討)、データ URI(容量が倍になる) | デバッグログ(フィールド境界が見えない)、カラーコード(CSS に直接渡せない) |
Best Practices
16進数の大小文字は統一する(A-F vs a-f)
同じプロジェクト内では、16進数のアルファベットは**必ずすべて大文字か、すべて小文字のどちらかに統一**します。C/C++/Go/HTML のカラーコードは大文字 A-F が慣習;JSON、URL、UUID(RFC 4122)、イーサリアムアドレス、JavaScript 文字列は小文字 a-f が慣習です。大小文字を混在させても値は変わりませんが、言語をまたいだ解析(例:`int('FF', 16)` vs `int('ff', 16)`)や人の目で読む際に問題になります——ログ中の「FF5733」と「ff5733」は目で判別しづらく、デバッグ中に誤読しやすいです。
16進数とは?0x プレフィックスを明示するか、符号なし 10 進数と明記する
JSON、URL パラメータ、API フィールドの数値はデフォルトで 10 進数です。JSON 内の文字列 '100' は 10 進数の 100 ですが、'0x100' は 16 進数の 256 です。**必ず** 0x プレフィックスを明示する(またはフィールド名に `hex` サフィックスを付ける)こと。さもないとバックエンドが 10 進数として読み取り、誤った結果になります(100 vs 256 で 2.56 倍の差)。複数ベンダーの API を一括連携する場合は、プロトコル仕様書に「すべての hex フィールドは 0x プレフィックス必須」と明記することを強く推奨します。
なぜ 16進数以上では文字が使われるのですか?バイト順(Big/Little-endian)の変換は明示的に指定する
ネットワークプロトコル、ファイルフォーマット、ハードウェアレジスタはほぼ必ずバイト順を強制します——ネットワークバイト順はビッグエンディアン、x86/ARM CPU のデフォルトはリトルエンディアンです。**読み書き時には必ずバイト順を明示的に指定**してください。さもないと、同じ 16 進数 `0x1234` がバイト順によって `0x1234` または `0x3412` として解釈され、4 倍の差になります。Python は `int.from_bytes(b, 'big')` / `'little'`、Go は `binary.BigEndian` / `binary.LittleEndian`、C は `htonl/htons/ntohl/ntohs` を使い、直感で書かないこと。
10 進数を 16 進数に変換するには?MAC アドレス、UUID、ハッシュ値は小文字で統一する
RFC 4122 は UUID を小書きと規定;IEEE 802 の MAC アドレス規約は小文字;イーサリアムアドレス、git commit hash、TLS フィンガープリント、ファイル SHA-256 ハッシュはほとんどすべて小文字がデフォルトです。**16 進数の識別子を一括出力する場合は小文字で統一**することで、Linux/Mac/Windows 間のコピー&ペーストの差異(Windows のクリップボードはまれに大小文字を変える)を回避できます。ログシステム、CMS、設定管理システムは小文字を基準に重複排除とインデックスを行うため、大小文字の混在は別のエントリとして扱われます。
RFC 4122 - UUID 標準カラーコード変換ではアルファチャネルの有無を確認する
CSS カラーコード `#FF5733` は 6 桁 RGB;`#FF573380` は 8 桁 RGBA(末尾 2 桁 80 = alpha 50%);短縮形 `#F53` は `#FF5533` と同等です。本ツールの変換は数値部分のみを処理するため、**アルファチャネルは別途処理が必要**です。デザインの色を一括でコードに適用する場合は、まず長さでグループ分け(6 桁 vs 8 桁)し、8 桁 RGBA を 6 桁 RGB と誤認しないでください(alpha が失われ、透明色が不透明になります)。
RGB/HEX カラー変換ツールIPv6 アドレスと MAC アドレスの変換では区切り文字を失わない
IPv6 アドレスは 32 桁の 16 進数 + 7 つのコロン区切り(`2001:0db8:85a3:0000:0000:8a2e:0370:7334`)、MAC アドレスは 12 桁の 16 進数 + 5 つのコロンまたはハイフン(`00:1A:2B:3C:4D:5E`)です。**本ツールで生の 16 進数文字列を変換する場合**:`20010db8...` を 10 進数に変換すると巨大な数値になり(IPv6 完全アドレスは約 3.4×10³⁸)、復元時には 4 桁/2 桁ごとに再グループ化してコロンを付け直す必要があります。IPv6/MAC の一括処理には専用ツール(`/other/color-convert/` 付近のネットワークツール)を使用し、本ツールをエンドツーエンドの変換に使わないでください。
どの進数(基数)に対応していますか?16 進数文字列をパスワードや機密情報として扱わない
「32 桁の 16 進数」は高強度パスワードのように見えますが(`a3f8b9c2d1e0f7a6b5c4d3e2f1a0b9c8`)、実エントロピーは 16 バイト = 128 bit に過ぎず、**16 進数表記そのものが鍵/トークンそのもの**であることが多いです——API Key、JWT secret、共通鍵暗号鍵、TOTP secret、暗号通貨ウォレットの秘密鍵、HMAC key はすべて 16 進数文字列です。これらが漏洩したら裸同然であり、**絶対に**チケット、Slack、メール、スクリーンショットに貼ってはいけませんし、(ローカル処理をうたっていても)オンラインツールで変換してはいけません。本ツールはフォーマット変換ツールであり、鍵のセマンティクスを持つ 16 進数文字列の処理には適しません。
データは安全ですか?サーバーに送信されますか?よくある質問
どの進数(基数)に対応していますか?
2進数(base-2)から36進数(base-36)までのすべての整数基数に対応しています。2進数、8進数、10進数、16進数はクイックアクセスカードで表示されます。
16進数を10進数に変換するには?
ドロップダウンで16進数(base-16)を選択し、16進値(FF、A3など)を入力すると10進数の結果が即座に表示されます。例:FF = 255。
10進数を16進数に変換するには?
10進数(base-10)を選択し、10進数(255など)を入力すると16進数の結果が即座に表示されます。例:255 = FF。
2進数を16進数に変換するには?
2進数(base-2)を選択し、2進文字列(11111111など)を入力すると16進数の結果が即座に表示されます。2進数4桁が16進数1桁に対応します。
小数に対応していますか?
はい。3.14やFF.8のような小数に対応しています。小数部はDecimal.js高精度アルゴリズムで最大20桁まで計算されます。
負数に対応していますか?
はい。数値の前にマイナス記号(-)を付けてください。
16進数とBase64の違いは?
16進数は16記号で1バイトあたり2文字、Base64は64記号で3バイトあたり約4文字でよりコンパクトです。
なぜプログラミングで16進数が使われるのですか?
バイナリデータを人間が読みやすく表現するためです。16進数1桁=4ビット、2桁=1バイトで、メモリアドレスやカラーコードが読みやすくなります。
データは安全ですか?サーバーに送信されますか?
安全です。すべての変換はブラウザ内でJavaScriptによりローカル実行され、データがデバイスから送信されることはありません。
「基数(radix)」とは何ですか?
基数は数値システムで使用される固有の数字の数です。2進数は2個、10進数は10個、16進数は16個の記号を使用します。
なぜ16進数以上では文字が使われるのですか?
基数が10を超えると0-9だけでは記号が不足するためa-zを使用します。16進数ではA=10からF=15です。
大きな数値でも精度は保たれますか?
はい。Decimal.jsの任意精度演算を使用しており、通常のJavaScriptの浮動小数点精度の問題を回避しています。
Privacy & Security
すべての変換はブラウザ内でローカル実行され、入力された数値はサーバーに送信されません。データの保存・記録・分析は行わず、オフラインでも使用可能です。
- 色覚シミュレーター
- カラーコンバーター
- .htaccess→Nginx変換ツール
- SQL 変換ツール
- Cookieパーサー
- Cron式ジェネレーター
- Cron式バリデーター
- CSSフォーマッター
- CSS圧縮
- CSV→Excel変換
- 通貨変換
- 差分チェッカー
- ファビコンジェネレーター
- XMLフォーマッター
- 16進数変換ツール
- HTMLフォーマッター
- HTML圧縮
- HTML→Markdown変換
- MarkdownからHTML変換
- JavaScript フォーマッター
- JS圧縮
- JSXフォーマッター
- JSX 圧縮
- キーワードのクラスタリング
- Lorem Ipsum ジェネレーター
- Markdown テーブルジェネレーター
- Meta Tag ジェネレーター
- パスワード生成器
- パスワード強度チェッカー
- QRコード・バーコードジェネレーター
- 正規表現テスター
- Slugジェネレーター
- SQLビルダー
- SQL フォーマッター
- 文字数カウント
- 時間ツール
- TSフォーマッター
- TS圧縮
- TSXフォーマッター
- TSX圧縮
- Unix タイムスタンプ変換
- UUID ジェネレーター
- YAMLフォーマッター
- 大文字と小文字の変換