数値進数変換ツール: 2進数、16進数、10進数、8進数
2進数、10進数、8進数、16進数、あるいは2から36までの任意の基数の間で数値を変換する無料ツール。数字を入力するたびに正確な変換結果がリアルタイムで表示されるので、プログラマーや学生がコンピューターサイエンスの基礎を学ぶ際にも、無料で気軽にすぐ活用できる。
数値進数変換
入力すると自動的に変換されます
ドキュメンテーション
数値基数変換
数値基数変換ツールは、数値の値を変えずに、ある位取り記数法から別の位取り記数法へ数値の表記を変換します。二進数を十進数に、十進数を十六進数に変換したり、2から36までの任意の二つの基数の間で変換したりできます。
数値の基数とは?
数値の基数(radix)とは、記数法で新しい桁に移って同じ数字を繰り返し始めるまでに使う異なる数字の数です。日常の計数に使う十進法は基数10です。0から9までの十個の数字を使います。二進法は基数2で、0と1だけを使います。基数が10を超えると、不足する数字の代わりに文字を使います。Aは10、Bは11を表し、Zは35を表します。これにより、アルファベットの26文字と10個の数字だけで、ほとんどの変換ツールが対応する最大の基数である36まで扱えます。
数値内の各数字には、基数の累乗に基づく位の値があります。十進法では、「205」は2個の百、0個の十、5個の一を意味します。これは100と10が10の累乗だからです。同じ考え方は任意の基数に当てはまり、右端の数字には基数⁰、次の数字には基数¹、さらに次の数字には基数²を掛けます。
数値を別の基数に変換する方法
数値を十進数に変換する
任意の基数の数値を十進数に変換するには、右から0番目として各数字に、その位置の基数の累乗を掛け、その結果をすべて加算します。
公式: 値 = dₙ × 基数ⁿ + ... + d₁ × 基数¹ + d₀ × 基数⁰
例: 基数5の数値101を十進数に変換します。
- (1 × 5²) + (0 × 5¹) + (1 × 5⁰)
- = 25 + 0 + 1
- = 26
したがって、基数5の101は、十進数では26です。
十進数を別の基数に変換する
十進数を別の基数に変換するには、対象の基数で繰り返し割り、各回の余りを記録します。数値が0になったら終了し、最後に得られた余りから最初の余りへ逆順に読み取ります。
例: 十進数の26を基数5に変換します。
- 26 ÷ 5 = 5、余り1
- 5 ÷ 5 = 1、余り0
- 1 ÷ 5 = 0、余り1
- 余りを下から上へ読むと、101です。
これは先ほどの例を裏付けています。十進数の26は、基数5では101です。
計算例
二進数から十進数へ: 二進数1101は、次のように十進数へ変換されます。(1×2³) + (1×2²) + (0×2¹) + (1×2⁰) = 8 + 4 + 0 + 1 = 13です。
十進数から十六進数へ: 十進数202は、次のように十六進数へ変換されます。202 ÷ 16 = 12、余り10、次に12 ÷ 16 = 0、余り12です。十六進数では、10はA、12はCと書きます。余りを下から上へ読むとCAになります。したがって、十進数の202は十六進数ではCAです。
八進数から二進数へ: 八進数17をまず十進数に変換します。(1×8¹) + (7×8⁰) = 15です。次に十進数の15を二進数に変換すると1111になります。したがって、八進数の17は二進数では1111です。
主な数値の基数
| 基数 | 名称 | 使用する数字 | 用途 |
|---|---|---|---|
| 2 | 二進法 | 0–1 | コンピューターによるデータの保存と処理 |
| 8 | 八進法 | 0–7 | UnixとLinuxのファイルパーミッションコード |
| 10 | 十進法 | 0–9 | 日常の計数 |
| 16 | 十六進法 | 0–9、A–F | メモリアドレス、Webの色コード |
| 36 | 基数36 | 0–9、A–Z | 短いWebのIDとコンパクトなコード |
非常に大きな数値
一部の変換では、標準的な倍精度演算では正確に扱えない大きな数、つまり2⁵³ − 1(9,007,199,254,740,991)を超える整数が関わります。たとえば64ビットの十六進値FFFFFFFFFFFFFFFFなどです。この変換ツールは、任意精度の整数演算を使って任意の大きさの整数を扱うため、長い値でも丸めたり桁を失ったりしません。
よくある質問
二進数と十六進数の違いは何ですか?
二進数は0と1の二種類の数字だけを使います。十六進数は、0から9までとAからFまでの十六種類を使います。16は2⁴なので、十六進数の一桁はそれぞれ正確に四桁の二進数を表します。そのため、十六進数は二進数の値を短く表記する方法としてよく使われます。
十進数を手計算で二進数に変換する方法?
十進数を2で繰り返し割り、各回の余りを記録します。最後の割り算から最初の割り算へ、余りを逆順に読み取ります。たとえば、13 ÷ 2 = 6、余り1、6 ÷ 2 = 3、余り0、3 ÷ 2 = 1、余り1、1 ÷ 2 = 0、余り1です。下から上へ読むと1101となり、これは二進数の13です。
このツールが対応する最大の基数は何ですか?
このツールは基数2から36までに対応しています。基数36は、十個の数字0-9とアルファベット二十六文字のA–Zだけで到達できる最大の基数です。ちょうど36種類の異なる記号が得られるためです。
このツールは負の数を変換できますか?
いいえ。正の整数のみに対応しています。負の数を変換するには、絶対値を変換し、結果に手作業でマイナス記号を付けてください。
コンピューターは内部で二進数を使うのに、なぜ十六進数と八進数があるのですか?
1と0が長く連続する文字列は、人間には読みにくく、数え間違えやすいものです。16と8はいずれも2の累乗なので、十六進数と八進数の各桁は、二進数の固定長のグループ、つまり十六進数では四ビット、八進数では三ビットに正確に対応します。これにより、長い二進数の値を短くでき、目視で確認しやすくなります。
このツールが変換できる数値の大きさに上限はありますか?
実用上の上限はありません。このツールは標準的な浮動小数点数ではなく任意精度演算を使うため、一般的な電卓で正確に表現できる範囲を超える数値を含め、非常に長い値も丸め誤差なしで変換できます。
参考文献
- Ecma International。ECMAScript Language Specification(ECMA-262)、Number.MAX_SAFE_INTEGER。TC39 ECMA-262 — 2⁵³ − 1を超える整数は、倍精度のNumber値として正確に表現できる保証がありません。
- The Open Group。chmod: change the file modes(POSIX)。Open Group Base Specifications — chmodのmodeオペランドには"a non-negative octal integer"を指定できます。
- World Wide Web Consortium。CSS Color Module Level 4。W3C CSS Color 4 — sRGBの十六進数カラー表記について、"represents the RGB and alpha components in hexadecimal notation"と記載されています。