数学

基数変換ツール

2進数、8進数、10進数、16進数の間で数値を瞬時に変換し、各桁が合計値にどう寄与しているかをリアルタイムの桁の重み分解で表示します。

このツールは役に立ちましたか?

基数変換ツールとは?

基数変換ツールは、ある位取り記数法で表された数値を別の記数法に変換するものです。最も一般的なのは2進数(基数2)、8進数(基数8)、10進数(基数10)、16進数(基数16)の間の変換です。どの記数法も仕組みは同じで、各桁の値はその位置と、基数をその位置の累乗で掛けた値によって決まります。コンピュータはすべてを2進数で保存・処理しますが、2進数の文字列は長く読みづらくなるため、プログラマは16進数をコンパクトな略記法として使用し、8進数は古いUnixのファイル権限に登場します。 この計算機は4つの記数法間を即座に変換し、各桁に位置の重みを掛けた内訳も表示するので、変換の仕組みを透明に理解でき、漠然とした答えだけを得るわけではありません。

この計算機を使用するタイミング

  • ソフトウェア開発でメモリアドレスやバイト値をデバッグするとき。16進数での出力が慣例となっています。
  • ウェブデザインやCSSスタイリングのために、16進数のカラーコードをRGB値に変換するとき。
  • ドット区切りの2進数や16進数で書かれるIPサブネットマスクやネットワークアドレッシングを理解するとき。
  • chmod 755など、8進表記を使用するUnix/Linuxのファイル権限コードを読み取るとき。
  • 数体系とデータ表現を扱うコンピューターサイエンスの授業や試験。
  • ビット演算を2進数や16進数で表現する競技プログラミングや低レベルコーディング。

手順:

  1. 変換したい数値を入力します。
  2. その数値が現在どの基数で書かれているか(2進数、8進数、10進数、16進数)を選択します。
  3. 4つの基数すべてに変換された値を瞬時に確認します。
  4. 桁の重み分解を展開して、各桁が合計値にどのように寄与しているかを確認します。

計算式

値 = Σ(桁 × 基数^位置) 位置は右端の桁を0として数えます。 例(2進数1011):1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 11(10進数)

ユースケース

  • ソフトウェア開発におけるメモリアドレスやバイト値のデバッグ
  • ウェブデザインで16進数と10進数の間でカラーコードを変換
  • コンピューターサイエンスの授業で2進数や16進数を扱う
  • 8進数で表記されたUnix/Linuxのファイル権限コードを読み取る
  • IPサブネットマスクやネットワークアドレッシングの理解

主な利点

  • 2進数、8進数、10進数、16進数を同時に瞬時変換
  • 視覚的な桁の重み分解で計算の仕組みが一目で分かる
  • 選択した基数で無効な桁を即座に検出
  • 手動での長い割り算や余りの繰り返し計算が不要

プロのヒント

  • 16進数を読むときは、各桁がちょうど4ビットに相当することを覚えておくと、暗算での2進数変換に役立ちます
  • 手作業で16進数へ素早く変換するには、右端から2進数の桁を4桁ずつグループ化します
  • 8進数は2進数を3桁ずつグループ化するため、古い12/24ビットシステムでよく使われていました
  • 結果を信頼する前に、選択した「変換元」の基数が実際に入力した内容と一致しているか再確認しましょう

避けるべきよくある間違い

  • 2進数や8進数に'9'を入力するなど、選択した基数で無効な桁を入力してしまう
  • 16進数のA-Fは大文字小文字を区別しないが、固定の値を表すことを忘れてしまう
  • 古いプログラミング言語で、8進数の先頭ゼロ表記を10進数と混同してしまう
  • 2の補数の仕組みなしに2進数変換で負の数を扱えると誤解してしまう

重要な用語の説明

基数(Radix):数体系の基数の別名
位取り記数法:桁の値がその位置に依存する記数システム
ビット:1つの2進数の桁(0または1)
ニブル:4ビットのまとまりで、ちょうど16進数の1桁に相当

関連コンセプト

  • カラー値:#FF5733のような16進カラーは、3つの16進数(基数16)バイトです。当サイトのカラーコンバーターは、16進数、RGB、HSL、色名の各形式を相互変換します。
  • 2進数とデータサイズ:16進数のバイト値はデータ量に直接対応します。当サイトのデータ容量換算ツールは、ビット、バイト、ストレージ単位を相互変換します。
  • エポックタイムスタンプ:Unix時間は10進数や16進数で表示されることがよくあります。Unixタイムスタンプ変換ツールは、タイムスタンプと人間が読める日付を相互に変換します。
  • ハッシュ:MD5やSHA-256などの暗号ダイジェストは16進数の桁の文字列です。当サイトのハッシュジェネレーターは、これらの一般的なハッシュ形式を生成します。
  • エンコーディング:URLのパーセントエンコーディングでは、各特殊文字を%2Fのような16進エスケープで表記します。当サイトのURLエンコーダー・デコーダーは、URLコンテンツのエンコードとデコードを行います。

16進数の2Fを10進数に変換すると:2×16¹ + 15×16⁰ = 32 + 15 = 47。2進数では101111、8進数では57になります。

結果の解釈方法

変換ツールは、選択した基数の数値文字列としてすべての結果を表示し、桁の重み分解は各桁を「桁 × 基数^位置」に展開するため、ブラックボックスを信頼する代わりに手計算で数学を検証できます。右端の桁が位置0で、その重みは常に1です。左へ移動するたびに重みは基数でさらに1回乗算されます(つまり2進数では重みが1、2、4、8…となり、16進数では1、16、256…となります)。すべての「桁 × 重み」を合計すると、10進数の値を正確に再現できます。入力には選択した基数で有効な桁だけを使用する必要があります——ツールは無効な桁を即座にフラグ付けします。なお、このツールは非負の整数のみを扱います。負の値や小数の値には、位取り整数変換ツールではカバーできない2の補数や浮動小数点の処理が必要です。

よくある質問

2進数を10進数に変換するにはどうすればよいですか?
各2進数の桁を、その位置(右端を0として数える)に対応する2の累乗と掛け合わせ、結果を合計します。例えば、2進数の1011は 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 10進数の11 になります。
コンピューターの世界で16進数が使われるのはなぜですか?
16進数(基数16)は各桁がちょうど4ビットに対応するため、2進数ときれいに対応します。そのため、メモリアドレスやカラーコード、バイト値を純粋な2進数の長さに悩まされずに、コンパクトかつ人間が読みやすい形で表記できます。
各基数で有効な桁は何ですか?
2進数は0-1、8進数は0-7、10進数は0-9、16進数は0-9に加えてA-F(10-15を表す)を使用します。選択した基数の範囲外の桁を入力するとエラーが表示されます。
負の数や小数点以下を含む数値も変換できますか?
このツールは非負の整数を変換対象としており、プログラミング、ネットワーク、学習用途の大多数のケースをカバーします。符号付きや小数を含む2進数表現には、専用の2の補数表現や浮動小数点用のツールが必要です。
16進数のカラーコード(例:#FF5733)をRGBに変換するにはどうすればよいですか?
16進数のカラーコードは、赤・緑・青の3つの2桁の16進数を詰め合わせたものです。#FF5733をFF、57、33に分割し、各ペアを10進数に変換します:FF=255、57=87、33=51となり、rgb(255, 87, 51)になります。各ペアは00(0)からFF(255)までの範囲を取るため、16,777,216通りの色をすべて6桁の16進数で表せます。これがCSSが16進数を多用する理由です——コンパクトであり、各ペアがブラウザがそのチャンネルに保存するバイトに直接対応するからです。
2の補数とは何ですか?負の2進数をどのように表しますか?
2の補数は、コンピューターが負の整数を保存する標準的な方法です。数を負にするには、すべてのビットを反転して1を加えます:8ビットの+5(00000101)なら、ビットを反転し(11111010)、1を加えると11111011になり、これは−5を表します。最上位ビットが符号の役割を果たします——0は非負、1は負を意味します——その一方で加算回路は両方の符号で同じままです。4ビットの2の補数値の範囲は0〜15ではなく−8〜+7になります。範囲の半分が負数に使われるためです。このツールは非負の整数を変換対象とします。符号付きの値が必要な場合は、2進数の出力に自分で2の補数を適用してください。
変換結果の2進数に先頭のゼロが余分に付くのはなぜですか?
先頭のゼロは数値の値を変えません——0011も11もどちらも10進数の3です——しかし意図的に表示されることがよくあります。プログラマーは2進数をニブル(4ビット)やバイト(8ビット)にグループ化して、パターンが16進数と揃うようにします:0011 0011は16進数では33と読めますが、グループ化されていない110011は解読しにくくなります。一部のツールはコンピューターの実際のレジスタに合わせて固定幅(8、16、32ビット)にパディングします。最短の形式を好むなら、出力から先頭のゼロを取り除くだけですみます——値は変わりません。
8進数はUnixのファイル権限(chmod)でどのように使われますか?
Unixの権限は、所有者・グループ・その他ごとに、読み取り(r)、書き込み(w)、実行(x)の3ビットの組み合わせで構成されます。各3ビットは1桁の8進数に対応します。rwx = 7、rw- = 6、r-x = 5、r-- = 4です。したがってchmod 755は所有者にrwx、グループにr-x、その他にr-xを設定します。7、5、5が3つの8進数として現れる理由です。8進数は各桁がちょうど3ビットをカバーし、各主体の3つの権限位置に対応するため、この文脈で自然な表記法です。
このツールは非常に大きな数値を精度を失わずに変換できますか?
この変換ツールは、JavaScriptが正確に表現できる最大の整数である2^53 − 1=9,007,199,254,740,991までのすべての整数に対して正確です。その境界を超える値は最も近い表現可能な数に丸められる可能性があり、出力が正確な変換結果からずれることがあります。日常的な作業——カラーコード、メモリアドレス、IPマスク、ポート番号、学習用の数値——には、この範囲で十分すぎるほどです。53ビットを超える変換が必要な場合は、標準のブラウザ内変換ツールではなく、任意精度に対応したツールが必要です。
10進数を手作業で2進数に変換するにはどうすればよいですか?
数を2で割り続け、各ステップの余りを記録し、余りを下から上に読みます。47の場合:47 ÷ 2=23 余り 1、23 ÷ 2=11 余り 1、11 ÷ 2=5 余り 1、5 ÷ 2=2 余り 1、2 ÷ 2=1 余り 0、1 ÷ 2=0 余り 1。余りを上に向かって読むと101111になり、これは32+8+4+2+1=47に等しくなります。同じ繰り返し割り算の方法はどの基数でも使えます——8進数なら8で割り、16進数なら16で割ります——余りを逆順に集めます。
10進数を経由せずに2進数と16進数の間で直接変換するにはどうすればよいですか?
16進数の1桁はちょうど4ビットに等しいため、10進数のステップを挟まずに変換できます。2進数の桁を右から4つずつグループ化し、各グループを16進数の桁に変換します:101111 → 0010 1111 → 2F。各4ビットのグループは1つの16進記号に対応します(0000=0から1111=Fまで)。逆方向では、各16進数の桁を4ビットに展開します:2F → 0010 1111。同じショートカットは8進数にも機能します。8進数は2進数を3ビットずつのグループと対応付けるためです——それが2進数、8進数、16進数がこれほど簡単に相互変換できる理由です。

さらに多くのツールを見る

ツールライブラリ全体から厳選したおすすめです。