aduce ops

進数変換ツール

2進数・8進数・10進数・16進数を相互変換。 4bit区切り表示・負数対応・BigInt対応でハッシュやUUIDも扱えます。

進数変換ツールとは

本ツールは、2進数・8進数・10進数・16進数 の4つを ブラウザ上でリアルタイムに相互変換できる無料オンラインツールです。 任意の入力欄に数値を入れると、他の3欄が瞬時に対応する値で埋まります。 プログラミング・ネットワーク設定・色コードの読み替え・Unixパーミッションの確認など、 エンジニアの日常作業で発生する「進数の行き来」を1画面で解決します。

JavaScript の BigInt を採用しているため、通常の Number では扱えない 53bit を超える巨大整数(暗号ハッシュの一部・UUIDのタイムスタンプ成分・巨大なフラグビット列など)も正確に変換します。 また、計算はすべてブラウザ内で完結しているため、秘匿性の高い値を入力しても サーバや外部サービスに送信されることはありません。

使い方

上から順に 2進数・8進数・10進数・16進数 の4つの入力欄が並んでいます。 任意の欄にキーボードで値を入れるか、他のアプリからコピーしてペーストするだけです。 入力と同時に他3欄が再計算されます。各欄の右にある 📋 ボタンを押すと、 その進数の値をクリップボードにコピーできます。4bit区切り表示が有効な場合でも、 コピーされるのは区切りを除いた純粋な値(例: 10110110)なので、 そのままソースコードに貼り付けられます。

10進数の欄の右には、入力値が収まる ビット幅(8bit / 16bit / 32bit / 64bit / 64bit超)が表示されます。 「この値を扱うには何 bit の変数が必要か」を即座に把握できるため、 構造体の設計や型の選択に役立ちます。

進数の基礎

進数(基数)は、桁上がりが起こる数のことです。私たちが普段使う10進数は 0〜9 までの 10 種類の数字を使い、10 でひとつ上の桁に繰り上がります。2進数 は 0 と 1 の 2 種類だけで表現し、コンピュータ内部の状態(オン/オフ) をそのまま写したものです。16進数 は 0〜9 に加えて A〜F の合計 16 種類を使い、 2進数 4桁ぶんを 1桁で表現できるため、バイナリデータを読み書きするときに圧倒的に便利です。

例えば 10進数の 182 は、2進数では 10110110、 16進数では B6、8進数では 266 と表せます。 いずれも同じ値を別の記法で書き写しただけで、内部的に「どれが正しい」というものはありません。 用途に応じて読みやすい表現を選ぶのがポイントです。

活用シーン

プログラミング: ビット演算(AND/OR/XOR/シフト)の結果確認、 フラグ管理、マスク値の設計に。0b1010 & 0b1100 のような演算を 暗算で追うときに、10進や16進との対応を瞬時に知ると誤りが減ります。

ネットワーク設定: サブネットマスク /24 = 255.255.255.0= 2進で 11111111.11111111.11111111.00000000 のように、 IPアドレスやマスクの内部ビット構造を確認したいときに。ポート番号を16進で扱うケースにも。

色コード・CSS: #B6E2F5 のような HEX 色を RGB の 10進数に分解したり、 逆に 10進RGB を HEX にまとめたりするときに。各チャネル(R, G, B)をそれぞれ本ツールに入れれば、 2進や16進にすぐ変換できます。

Unixパーミッション: chmod 755755 は 実は 8進数です。本ツールの 8進数欄に 755 と入れると、 2進数に 111 101 101(rwx r-x r-x)が即座に現れ、 「所有者・グループ・その他」それぞれの読み・書き・実行権が視覚的に理解できます。

負の数と2の補数

本ツールは負の数に対して 符号付き素直表現 を採用しています。 これは 10進で -123 と書くのと同じ要領で、2進なら -1111011、 16進なら -7B のように、絶対値の前に - を付けるだけの表現です。

一方、実際のコンピュータ内部では負の整数を表現するのに 2の補数という方式が使われます。例えば 8bit符号付き整数の -111111111(全ビット1)として格納されます。 本ツールは桁数を固定しない(= 必要なビット幅を自動で選ぶ)ため、2の補数表示は採用していません。 低レイヤープログラミングで2の補数表記が必要な場合は、 「n bit の符号付き最大値 + 1 に対して値を引く」という手計算で求められます。

64bit以上の大きな値を扱うコツ

多くの Web ツールは JavaScript の Number に依存しているため、 53bit を超えると精度が失われ、変換結果が正しくありません。 本ツールは BigInt を使っているので、UUID の一部をなす 128bit 値の断片暗号ハッシュの先頭 32 バイトUnix ミリ秒タイムスタンプの hex 表現など、実務で出てくる大きな整数をそのまま投入できます。 入力の最大長は 1,024 文字までに制限していますが、これは 10進で約 340 桁、16進で 256 桁に相当し、 実質的にあらゆる整数ユースケースをカバーします。