convert / number-base
進数変換
2進数・8進数・10進数・16進数を相互変換します。ビット演算・組み込み開発・ネットワークアドレス計算など幅広い用途に対応しています。
2進数 (BIN)—
8進数 (OCT)—
10進数 (DEC)—
16進数 (HEX)—
使い方
01- タブで入力する進数(2進 / 8進 / 10進 / 16進)を選択してください
- 入力欄に値を入力すると、リアルタイムで全進数への変換結果が表示されます
- 各行の「コピー」ボタンで変換結果をクリップボードにコピーできます
- 16進数は大文字(A–F)で出力されます。先頭の
0x/0b/0oは参考表示です(コピー時は含まれません)
実装コード
02ブラウザ標準の parseInt と Number.prototype.toString のみで実装。外部ライブラリ不要でそのままコピーして利用できます。
export type Base = 2 | 8 | 10 | 16
export type ConvertResult =
| { ok: true; bin: string; oct: string; dec: string; hex: string }
| { ok: false; error: string }
export function convertBase(value: string, fromBase: Base): ConvertResult {
const trimmed = value.trim()
if (!trimmed) return { ok: false, error: '' }
const validChars: Record<Base, RegExp> = {
2: /^[01]+$/,
8: /^[0-7]+$/,
10: /^[0-9]+$/,
16: /^[0-9a-fA-F]+$/,
}
if (!validChars[fromBase].test(trimmed)) {
return { ok: false, error: `${fromBase}進数として無効な文字が含まれています` }
}
const decimal = parseInt(trimmed, fromBase)
if (!Number.isSafeInteger(decimal)) {
return { ok: false, error: '数値が大きすぎます(2^53-1 を超えています)' }
}
return {
ok: true,
bin: decimal.toString(2),
oct: decimal.toString(8),
dec: decimal.toString(10),
hex: decimal.toString(16).toUpperCase(),
}
}よくある使用例・注意点
03ビット演算のデバッグ
JavaScriptやCなどでビット演算(AND, OR, XOR, シフト)を行う際、2進数での確認が欠かせません。例えば 0xFF & 0x0F = 0x0F(255 & 15 = 15)を視覚的に確認する際、このツールで各値の2進数表現を比較することで論理の誤りを見つけやすくなります。
組み込み開発・レジスタ設定
マイコンのレジスタ設定はデータシートで16進数(例: 0x3C)として記載されることが多いですが、実際のビット意味を理解するには2進数への変換が必要です。また、8進数はUnixのファイルパーミッション(chmod 755 など)の確認にも使われます。
安全に扱える数値の上限
このツールはJavaScriptの Number 型を使用しているため、2^53-1(9007199254740991)を超える値は正確に扱えません。64ビット整数が必要な場合は BigInt を使った実装を検討してください。大きな数値を入力するとエラーメッセージが表示されます。
16進数の大文字・小文字
このツールでは16進数の出力は大文字(A–F)で統一しています。CSSのカラーコード(#ff0000)やシェルスクリプトでは小文字が使われることもありますが、値としては同一です。コピーした後に必要に応じて変換してください。
関連ツール
04ソースコード
05このツールのソースコード(テストコードを含む)はGitHubで公開しています。 MITライセンスで自由に利用・改変できます。
GitHub でコードを見る →