十六進数計算機

十六進数の加算、減算、乗算、除算、10進数・2進数への変換、RGBカラーコードの読み取り。十六進数計算機は基数16の繰り上がりをすべて表示します。

01 計算機

入力すると結果が更新されます。Ctrl/Cmd+Enterで主な結果をコピー。

結果

    途中式を表示

      十六進数計算機は十六進数の加算、減算、乗算、除算を行い、16進、10進、2進の相互変換を行い、結果を任意の 0x プレフィックス付きで整形します。桁は 0 から 9 と A から F で、A は 10、F は 15 です。筆算は 10 進と同じ繰り上がり・繰り下がりの規則を使い、しきい値だけ 10 ではなく 16 なので、色チャンネルやメモリアドレスを別のメモ帳なしで確認できます。

      計算はすべてブラウザ内で実行されます。入力内容がサーバーに送られることはありません。

      十六進数の加算、減算、乗算、除算

      Concept diagram: 入力 leads to Add, subtract, multiply and divide… leads to 結果入力Add, subtract, multiplyand divide…結果
      十六進数の加算、減算、乗算、除算.

      十六進の算術は、桁 0 から 9 と A から F を使う基数 16 の桁ごとの計算です。2 つの 16 進文字列を入力し、演算を選ぶと、十六進数計算機は 16 進の結果と横に 10 進の確認値を返します。文字桁は大文字・小文字どちらでも入力できます。出力はスタイル切り替えで指定がなければ大文字に正規化されます。

      1 桁の合計が 16 以上になると繰り上がりが発生します。繰り下がりは上位桁から 16 を借ります。乗算と除算は 10 進と同じ筆算レイアウトを使い、中間積は 16 進乗算表から参照します。0 から 9 と A から F 以外の桁は、演算前に拒否されます。

      十六進数を10進数に変換する

      Scale bar: 1 十六進数 equals 2.68 十進数1 十六進数2.68 十進数
      十六進数を10進数に変換する.

      位置記数法では各 16 進桁に 16 の累乗を掛けます。最右位は 16⁰(1 の位)、次に 16¹(16 の位)、16²(256)、16³(4096)と続きます。文字桁は先に 10 進値へ変換します: A=10、B=11、C=12、D=13、E=14、F=15。

      2F の場合:

      2 F
      │ └─ 15 × 16⁰ = 15
      └───  2 × 16¹ = 32
                      = 47

      FF は 15×16 + 15 = 255 で、符号なし 8 ビットの最大値であり、RGB 3 成分の各チャンネルが最大のときの値です。計算機は変換ごとに展開式を表示するので、文字の読み間違いを早く見つけられます。

      10進数を十六進数に変換する

      Scale bar: 1 十進数 equals 1.38 十六進数1 十進数1.38 十六進数
      10進数を十六進数に変換する.

      16 で割り続けると、余りが 16 進桁になります。10 進値を 16 で割り、余りを記録し、商が 0 になるまで続けます。余り 10 から 15 は文字桁 A から F になります。余りを最後から先へ読むと 16 進文字列になり、十六進数計算機も確認用に同じ文字列を表示します。

      10 進 47 の場合:

      手順余り
      47 ÷ 16215 (F)
      2 ÷ 1602

      下から読むと 2F になります。大きな整数も同じ手順で、ステップ数だけが増えます。10 進と 16 進を計算機で往復させるのは、デバッガや CSS の色フィールドに値を貼る前の簡単な確認になります。

      16進で 8AB と B78 を加算する

      Concept diagram: 入力 leads to 16進で 8AB と B78 を加算する leads to 結果入力16進で 8AB と B78 を加算する結果
      16進で 8AB と B78 を加算する.

      8ABB78 の加算は、文字桁をまたぐ繰り上がり付き 16 進の桁ごと加算の例です。10 進では 0x8AB は 2219、0xB78 は 2936 です。和は 5155 で、16 進では 1423 と書けます。16 以上になる桁ごとに、10 進の 10 での繰り上がりと同様に、上位へ 1 を繰り上げます。

      1 1          繰り上がり (10進)
              8 A B        2219
            + B 7 8        2936
            -------
              1 4 2 3      5155

      最右列: B + 8 = 11 + 8 = 19(10進)= 13(16進)、1 を書く。3 を書き、繰り上がり 1。 中央列: A + 7 + 繰り上がり 1 = 10 + 7 + 1 = 18(10進)= 12(16進)、1 を書く。2 を書き、繰り上がり 1。 左列: 8 + B + 繰り上がり 1 = 8 + 11 + 1 = 20(10進)= 14(16進、14)。4 を書き、残りの繰り上がりが先頭の 1 になります。

      結果 1423 は 1×4096 + 4×256 + 2×16 + 3 = 5155 と一致します。十六進数計算機は加算ごとにこの繰り上がりビューを表示し、手計算とツールの結果が一致することを確認できます。

      16進の繰り下がり付き減算

      Concept diagram: 入力 leads to 16進の繰り下がり付き減算 leads to 結果入力16進の繰り下がり付き減算結果
      16進の繰り下がり付き減算.

      16 進の減算では、下の桁より小さい桁があるとき、10 進の 16、つまり 1 つの 16 の位丸ごとを借ります。上位の貸し手桁は 1 減り、現在の桁は 16 増えてから減算します。例 5DC マイナス 3AF は、下位列で繰り下がり規則を 1 回適用したきれいな正の結果 22D を示します。

      5 D C      1500 (10進)
      - 3 A F       943 (10進)
      -------
        2 2 D       557 (10進)

      最右: C (12) マイナス F (15) はそのままできないので D から借りる。下位桁は 12 + 16 = 28 になり、D は C に減る。28 − 15 = 13、つまり D。 中央: 貸した後の C マイナス A は 12 − 10 = 2。 左: 5 − 3 = 2。

      差は 22D です。減数の方が大きくビット幅が設定されている場合、計算機は固定幅レジスタ向けの 2 の補数スタイルのラップ結果を報告できます。無制限モードではレジスタサイズを決めずに符号付きの大きさを保ちます。

      16進と2進を直接相互変換する

      Scale bar: 1 入力単位 equals 1.92 出力単位1 入力単位1.92 出力単位
      16進と2進を直接相互変換する.

      各 16 進桁はちょうど 4 ビット、1 ニブルに対応し、余りはありません。この固定対応のおかげで 16 進ダンプはコンパクトに保て、FF のような RGB ペアは 2 進では 8 個の 1 になります。2 基数間の展開・圧縮はニブル表だけで足り、十六進数計算機は有効な文字列ならどちらの方向も実行します。

      16進2進10進
      000000
      100011
      701117
      810008
      A101010
      F111115

      2F0010 1111 になります。FF1111 1111 になります。1 バイトを 2 桁の 16 進で展開したり、8 ビットを 2 桁の 16 進に圧縮したりするのに、表以外の算術は不要です。十六進数計算機はその対応を双方向で行います。位置記数の解説とビット演算のチュートリアルは 2 進数計算機のページに置き、2 つのツールが重複しないようにしています。

      16進カラーコードを読む

      Concept diagram: 入力 leads to hex colour codes leads to 結果入力hex colour codes結果
      16進カラーコードを読む.

      CSS とデザインツールは色を #RRGGBB と書き、各ペアは 00(0)から FF(255)までの 8 ビットチャンネルです。#FF5733 は赤 255、緑 87、青 51 です。任意のアルファチャンネルは 4 番目のペア(#RRGGBBAA)を加え、同じ 00 から FF のスケールで不透明度を表します。

      コード
      #000000000
      #FFFFFF255255255
      #FF000025500
      #00FF0002550
      #0000FF00255
      #FF57332558751

      チャンネルの混合は各ペアを独立に行う普通の 16 進算術です。明るくするには FF 方向へ加算し、暗くするには 00 方向へ減算します。計算機はプレフィックスなしの 16 進または # 付き文字列を受け付け、パレット仕様と比較するためにチャンネルを 10 進へ変換できます。

      メモリアドレスとバイト値を読む

      Concept diagram: 入力 leads to memory addresses and byte values leads to 結果入力memory addresses andbyte values結果
      メモリアドレスとバイト値を読む.

      デバッガと言語ランタイムはポインタと機械語の値を 0x プレフィックス付き 16 進で表示します。0x7FFE は 10 進より短く見え、バイト境界に揃います。メモリダンプは通常、1 バイト 2 桁の 16 進の格子です。ワード(16 ビット)、ダブルワード(32 ビット)、クワッドワード(64 ビット)はそれらのバイトのまとまりです。

      エンディアンは複数バイトのワード内のバイト順を決めます。リトルエンディアンは最下位バイトを最も低いアドレスに置き、ビッグエンディアンは最上位バイトを先に置きます。メモリから 0x1234 をバイト 34 12 として読むのはリトルエンディアンです。順序を混同すると、レジスタ表示と突き合わせるまでもっともらしいアドレスや整数に見えます。十六進数計算機は数値そのものを変換します。ダンプの解釈には対象が使うエンディアンを知る必要があります。

      十六進乗算表を読む

      Concept diagram: 入力 leads to hexadecimal multiplication table leads to 結果入力hexadecimalmultiplication table結果
      十六進乗算表を読む.

      1 桁同士の積は手算や長い乗算のために覚えやすい大きさです。行と列は 1 から F までで、各セルには 16 進で書いた積が入ります。A × BF × F を引くと、複数桁の 16 進値を手で掛ける途中で 10 進へ変換する必要がなくなります。

      ×123456789ABCDEF
      22468ACE10121416181A1C1E
      448C1014181C2024282C3034383C
      881018202830384048505860687078
      AA141E28323C46505A646E78828C96
      FF1E2D3C4B5A69788796A5B4C3D2E1

      F × F = E1 は 15 × 15 = 225 で、225 = 14×16 + 1 だからです。複数桁 16 進数の長い乗算は、これらの 1 桁積とシフトした部分和の 16 進加算から構成されます。計算機はその作業を自動で行い、確認用の 10 進値も表示します。

      よくある質問

      十六進数はどの桁を使いますか?

      十六進数は 0 から 9 と A から F を使います。A は 10、B は 11、C は 12、D は 13、E は 14、F は 15 です。各桁は基数 16 の 1 つの位なので、16 進の 10 は 10 進の 16 であり、10 ではありません。

      16進を10進に変換するには?

      各桁に 16 の累乗を掛けて足します。最右桁は 1、次は 16、次は 256、次は 4096 の価値があります。文字桁は先に 10 から 15 に変換します。2F は 2×16 + 15 = 47 です。

      プログラマーがバイトに10進より16進を好むのはなぜですか?

      1 つの 16 進桁はちょうど 4 ビットなので、2 桁でちょうど 1 バイトになります。この整列のおかげでマスク、色チャンネル、メモリダンプを各ビットへ変換せずに読めます。10 進値はその境界を隠します。

      0x プレフィックスは何を意味しますか?

      0x プレフィックスは C 言語などで一般的な表記規則で、続く桁が十六進であることを示します。0xFFFF は計算機にとって同じ値です。入力では任意、出力ではコードへ貼るために付けられます。

      16進と RGB カラーコードの関係は?

      #RRGGBB 色は各チャンネルを 00 から FF までの 2 桁 16 進で格納します。#FF5733 は赤 255、緑 87、青 51 です。アルファがある場合も同じ範囲の 4 番目のペアです。

      エンディアンとは何ですか?

      エンディアンは複数バイト値をメモリに格納するときのバイト順です。リトルエンディアンは最下位バイトを最も低いアドレスに置き、ビッグエンディアンは最上位バイトを先に置きます。同じ 16 進整数でも、機械によっては異なるバイト列として現れます。

      繰り下がり付きで16進を減算するには?

      桁が引かれる桁より小さいとき、上位桁から 16 を借ります。現在の桁は 16(10 進)増え、貸し手桁は 1 減ります。5DC − 3AF = 22D は下位列でその規則を使います。

      10進を経由せず16進を2進へ直接変換できますか?

      はい。各 16 進桁を 4 ビットパターンに置き換えます。A1010F1111 などです。ニブルを連結すれば完全な 2 進文字列になります。10 進の中間値は不要です。

      FF を10進で表すと?

      FF(16 進)は 15×16 + 15 = 255(10 進)です。符号なし 8 ビットの最大値であり、1 つの色チャンネルの「最大」レベルです。

      十六進数計算機は値をアップロードしますか?

      いいえ。変換と算術はすべてブラウザ内で実行されます。アドレス、カラーコード、ダンプ断片は端末に留まります。

      まとめ

      十六進数計算機は基数 16 の算術を行い、16 の累乗と 4 ビットのニブル対応を通じて 16 進、10 進、2 進を相互変換し、色チャンネルやメモリ向けの 16 進文字列の読み取りを支援します。8ABB78 を加算すると 14235DC から 3AF を減算すると 22D になります。

      RGB コード、0x アドレス、エンディアンを意識したダンプの読み方はここで扱います。ビット単位の位置記数の解説は 2 進数計算機に置き、2 ページが重ならないようにしています。

      関連計算機

      2進数計算機 · IPサブネット計算機 · 大きな数の計算機