メインコンテンツへスキップ
CalcMax

16進数計算

計算結果

2A5A

16進数

10進数
10,842
2進数
10101001011010
余り
0

16進数の計算ツールは、16進数の足し算・引き算・掛け算・割り算を行い、答えを16進数・10進数・2進数の3通りで表示します。16進数は16を基数とする表記なので、10進数の10個に対して16個の桁の形が要ります。足りない6個はアルファベットから借りてきて、AからFまでが10から15までを表します。記法の話はこれで全部です。Aは符号でも略語でもなく、9の次の桁なのです。4つの演算は見慣れたものです。足し算も引き算も掛け算も割り算も、10進数の計算とまったく同じように桁ごとに進みますが、基数が10ではなく16なので、9を越えたときではなくFを越えたときに繰り上がります。答えを3通りに出すのは、3つの読みがそれぞれ別の読み手に応えるからです。16進数はその値がふつう書かれる形で、10進数はほとんどの人が素性を確かめられる形で、2進数はその下のビットそのもので、16進数の桁はもともとそこから来ています。割り算は整数の割り算なので、余りは小数点に消えるのではなく自分の行を持ちます。

公式

「2A3F」 + 「1B」 = 「2A5A」(10,815 + 27 = 10,842)

「2A3F」
1つ目の数で、16を基数として書かれています。文字は桁です。Aは10、Bは11、Fまで続いて15です。Aをそれ以外の何かとして読むことが、このページが防ぐために存在している間違いです
+ − × ÷
演算です。10進数の計算とまったく同じように桁ごとに進みますが、基数が10ではなく16なので、桁はFを越えたときに繰り上がります
F + 1 = 10
この基数の繰り上がりの規則です。15に1を足すと桁が尽きて、新しい列が始まります。10進数の9 + 1 = 10と同じ出来事が、基数1つ分だけ先で起きているのです
各桁 × 16ⁿ の総和
10進数の読みがどう作られるかです。各桁にその位の値を掛け、結果を足し合わせます。「2A3F」が10,815になるのはこの道筋で、8,192と2,560と48と15を足したものです
1桁 = 4ビット
そもそもこの基数が使われる理由です。16進数の1桁は2進数のちょうど4桁を抱えているので、1バイトはちょうどその2文字になり、2つの表記の間を移るのに計算は要りません。まとめ直すだけです
余り
割り算が割り切れなかったときに残るものです。行は常にあり、余りを残しようがない3つの演算では0と表示されます。そこに0が出るのは、その演算が何も残さなかったという意味であって、行が埋まらなかったしるしではありません
53ビット
このページが受け付ける入力の幅です。9007199254740991までで、16進数では1FFFFFFFFFFFFF、14桁になります。その幅を超えると機械の数は隣り合う数を見分けられなくなり、計算は静かに正確でなくなります

16進数は、2進数を人が読まなければならなくなったときの姿です。値が16ビット以上あるところ、つまりメモリアドレス、色、ハッシュ、機械語の一覧、デバイスのレジスタダンプ、ネットワークのパケットキャプチャは、どれもこの基数で印字されます。そういう値に対して計算することは、その層で働く人にとって毎日の仕事です。ポインタにオフセットを足す、構造体の大きさを出す、チェックサムを計算する、デバッグ中にアドレス範囲を1つずつ進める、マスクがどのビットを立てるか確かめる、といった作業はどれも16進数の数に対して行う計算で、答えの隣に並ぶ2進数の読みが、その結果を表しているフラグと欄に戻してくれます。デザイナーやフロントエンドの開発者は色の値で出会います。チャンネルごとに2桁の組が、画面が求めているバイトそのものだからです。逆の向きにも使います。10進数で分かっている値を16進数に変換して、仕様と見比べたり道具に貼り付けたりする場合で、2進数の読みはどのビットが実際に立っているかという問いに答えます。基数を学んでいる学生も同じ恩恵を受けます。文字は、位の値を並べてみるまで恣意的に見える部分そのものだからです。

計算例

  1. 「2A3F」と「1B」を足す

    1. 2つの数を右端でそろえる:「2A3F」と「001B」
    2. いちばん右の列:F + Bは15 + 11 = 26 = 16 + 10なので、Aを書いて1を繰り上げる
    3. 次の列:3 + 1 + 繰り上がりの1 = 5なので、5を書く
    4. 次の列:A + 0 = Aなので、Aを書く
    5. いちばん左の列:2 + 0 = 2なので、2を書く
    6. 結果は「2A5A」と読め、10進数では10,842である

    既定の例で、繰り上がりが文字の境目をまたぐ場合です。FとBを足すと26で、それは16が1つと10なので、書き下ろす桁は2桁の数ではなくAになります。2進数の読みは同じビットを4つずつまとめ直したもので、全体の点検に使えます。

  2. 「2A3F」を「1B」で割る

    1. これは10,815を27で割る計算である
    2. 27は10,815にちょうど400回入り、15が残る
    3. 400は16進数で「190」、余りの15はFである
    4. このページは商を「190」、余りをFとして報告する

    ここでの余りはF、つまり15です。除数より小さいのに文字を要する値です。この例は、常にある余りの行が場所を取る価値があることも示します。それがなければ答えは「190」と読めてしまい、400 × 27は10,800であって10,815ではありません。

  3. 同じ計算を小文字で

    1. 小文字と大文字は同じ桁である。aはAとまったく同じく10である
    2. 計算は変わらないので、答えも同じ「2A5A」である
    3. 打ち込んだ書き方によらず、このページは答えを大文字で印字する

    どちらの書き方も日常的に使われているからです。CSSの色の値はほとんどいつも小文字で、逆アセンブラやデータシートは大文字で印字します。どちらも間違いではありません。正規化されるのは印字される答えだけで、その向きは大文字のほうです。

適用限界

このページは16進数の整数だけを扱います。16進小数点も小数の入力もないので、「2A.8」は受け付けません。割り切れない割り算は、小数の答えではなく切り捨てた商と余りになります。入力は1FFFFFFFFFFFFF、つまり9007199254740991までで、これは機械の数が隣り合う整数を見分けられなくなる幅です。結果にも同じ上限が掛かるので、あふれた答えは近似値ではなくエラーとして報告されます。負の結果は2の補数ではなく前にマイナス記号を付けて書き、固定の幅は仮定しません。ここでの「1B」は2桁であって、何かの下位バイトではありません。小文字も受け付け、答えは大文字で印字します。0での割り算は拒否します。このページが行うのは3つの基数での計算と変換で、ビット演算はしません。ANDもORもXORもシフトもここにはありません。

よくある質問

文字は何を意味するのか
桁です。16を基数とする表記には16個の区別できる桁の形が要りますが、なじみのある組には10個しかありません。だからAからFまでが10から15までを表し、Aは10、Fは15です。文字を選ぶことに何かが符号化されているわけではありません。アルファベットの続きの文字をそのまま持ってきただけで、16個の区別できる記号ならどれでも同じ役に立ちます。ここでは大文字と小文字はまったく同じ桁です。
2進数では繰り上がる1 + 1が、ここでは繰り上がらないのはなぜか
基数が違うので、桁が尽きる場所も違うからです。2を基数とする表記には2という桁がないので、1が2つで即座に繰り上がります。16を基数とする表記には15まで桁があるので、和がFを越えたときにだけ繰り上がります。2 + 2はどの基数でも4です。変わるのは数える記号だけです。
入力の大文字と小文字は区別されるのか
されません。2a3fと2A3Fは同じ数で、どちらも受け付けます。文字は桁で、桁に大小の区別はないからです。答えはどちらでも大文字で印字されます。どちらの書き方も日常的に使われています。CSSの色の値はたいてい小文字で、逆アセンブラやデータシートは大文字です。両方を受け付けるのに費用はかからず、片方を拒むのは恣意的になります。
入力できるいちばん大きな数はいくつか
1FFFFFFFFFFFFFで、16進数で14桁、10進数で9007199254740991、2進数では1のあとに1が53個続く形です。その幅を超えると機械は隣り合う整数を見分けられなくなるので、計算は静かに正確でなくなります。答えは数に見えますが、数ではありません。それより広い入力は切り詰めずに拒否し、同じ上限をあふれる結果も拒否します。
これは基数の変換と同じものか
その計算の半分です。このページは2つの数と1つの演算を受け取ります。1つの値を基数の間で変換するページは別にあり、ここからリンクしています。入力の基数と出力の基数を選ぶ1枚のページにまとめる設計も考えられますが、打ち込んだものの形を点検する力が失われます。どの基数でも受け付けるページは、「2G」が選んだ基数の数でないことを教えてくれません。
余りの行がいつも出るのはなぜか
結果パネルが、演算に合わせて形を変える一覧ではなく固定の行の集まりだからです。出たり消えたりする行は、いつも同じ場所にある行より読みにくいものです。整数の足し算・引き算・掛け算は余りを残せないので、そこは0と表示され、その0は埋め草ではなく正直な答えです。割り算では、切り捨てた商が正確な答えに見えるのを防いでいるのがこの行です。

参考文献

関連する計算ツール