進数変換

2〜36 進数の整数を変換。値を貼り付け、基数を選んで変換。

進数変換について

CPU やメモリダンプは二進数、デバッガや CSS 色コードは十六進数が日常語です。2~36 進の整数を bigint で正確に変換し、JavaScript の number による丸めを避けます。

どの進数も位取り(positional)です。各桁は基数の累乗を掛け合わせて足し合わせます。16 進の A は 10 を表し、8 進の各桁は 0~7 だけ。16 進入力の 0x プレフィックスは任意です。

できること

位取り記法

値 = Σ(桁 × 基数^位置)。十進 255 では右端 5 は 5×10⁰、真ん中 5 は 5×10¹、左 2 は 2×10²。同じ整数でも進数ごとに見た目は違います。

2~36 進のルール

  1. 桁 0~9 は値 0~9(必要な進数で使用)。
  2. 基数が 10 超のとき a~z が 10~35(大文字小文字不問)。
  3. 十六進は 0x / 0X 付きでも可。変換時は数字部分のみ扱います。
  4. 源進数と文字が一致している必要あり(8 進に 8 や 9 は不可)。

二進数 ↔ 十六進(ニブル)

  1. 二進数は右から 4 ビットずつ区切り、各ブロックが 1 桁の hex(0~F)に対応。
  2. 例:1111 1111 → FF(十進 255、1 バイト)。
  3. 左端が 4 ビット未満なら 0 で埋める(1010₂ = A₁₆)。
  4. ダンプを十進経由せずに読むときに便利です。

大整数

コア変換は bigint 演算のため、長いビット列・64 ビットマスク・大きな hex 定数(スノーフレーク ID 等)も正確です。

よくある使い方

二進数を十六進に

源 2・先 16 に設定しビット列を貼り付け。例 11111111 → FF。2→10→16 とニブル手算の両方で照合できます。

十進と二進の往復

十→二:源 10・先 2(42 → 101010)。8/16/32 ビット幅に揃えるときは二進の左に 0 を足します。

chmod・色・ビットマスク

755 は八進であり十進 755 ではありません。RGB 255 と hex FF は同じ 1 バイト。ドキュメントのマスク定数を十進に直してテストに書く。

学習・試験の確認

除基取余の手算や 0xDEAD の十進値を、ツールで答え合わせしてから紙の計算を練習する。

よくある質問

オンラインで進数変換するには?
源進数と先進数(2~36)を選び、その進数表記の整数を入力して変換します。日常は 2/8/10/16 が中心です。
二進数から十六進数へは?
源 2・先 16 で直接変換するか、右から 4 ビットずつ 0~F に対応。11111111 → FF(十進 255)。
十進と二進の互換は?
十→二:255 → 11111111。二→十:ビット列を源 2・先 10 に。小数は非対応、整数のみです。
八進を十進や hex に?
八進の桁は 0~7 のみ。377₈ = 255₁₀ = FF₁₆。Unix 権限 755 は八進です。
プログラムで十六進は何に使う?
4 ビットを 1 文字に圧縮。アドレス、#RRGGBB、MAC、ハッシュ表示など。C/JS では 0x プレフィックスが一般的です。
11111111(二進)が 255 になる理由は?
2 の累乗の和:1+2+4+8+16+32+64+128=255。8 ビット=1 バイト=FF(hex)。
小数は変換できる?
いいえ、整数のみ。分数や IEEE 浮動小数点は別アルゴリズムが必要です。
言語の結果と違うときは?
源進数、先頭ゼロ、C の 012 八進、parseInt の radix 引数などを確認してください。
36 進と Base64 は同じ?
36 進は 0~9 と a~z で 1 つの整数を表す位取り記法。Base64 は任意バイトの転送用エンコードで別物です。

進数対照例

  • 255(十進)二進 11111111 · 八進 377 · hex FF · 1 バイト
  • 10(十進)二進 1010 · hex A
  • 16(十進)二進 10000 · hex 10 · 八進 20
  • 0xFF十進 255 · 8 ビット全 1 マスク
  • 377(八進)十進 255 · FF と同じ 1 バイト
  • 101010(二進)十進 42
  • chmod 755(八進)十進 755 ではない — 八進として読む