数の基数とは?

数の基数(radix)とは、記数法で使われる数字の種類の数です。日常的に使われる十進法では、0から9までの10種類の数字を使い、各桁の値は右隣の桁の10倍です。コンピューターは、0と1だけを使う二進法で動作するため、各桁の値は右隣の桁の2倍です。0から7までの数字を使う八進法と、0から9および10から15を表すAからFを使う十六進法は、二進数を短く表す方法です。八進数の1桁はちょうど3ビットを、十六進数の1桁はちょうど4ビットを表すため、1バイトは常に2桁の十六進数で表せます。

同じ数を各基数で表すと、次のようになります。

十進数 二進数 八進数 十六進数
10 1010 12 A
42 101010 52 2A
255 11111111 377 FF
1000 1111101000 1750 3E8
65535 1111111111111111 177777 FFFF
-42 -101010 -52 -2A

各基数の用途

  • 二進数:ビット、フラグ、ビットマスク、サブネットマスクなど。たとえば 255.255.255.0 は、1が24個続いた後に0が8個続く値です。
  • 八進数:Unixのファイル権限など。たとえば chmod 755 では、各桁が3つの権限ビットを表します。
  • 十進数:日常的な数値。
  • 十六進数:#FF6600 のような色、バイト値、メモリアドレス、MACアドレス、U+00E9のようなUnicodeコードポイント。

ツールの説明

このツールでは、二進数、八進数、十進数、十六進数の間で整数を変換できます。汎用の「数の基数変換ツール」から、十進数から二進数、十六進数から十進数のような特定の組み合わせに対応したツールまで、どの基数変換ツールも同じ仕組みで動作します。ツール名に含まれる基数が最初に選択されており、「変換元」と「変換先」のメニューから4種類のいずれかに切り替えられます。数値を入力または貼り付けると、入力と同時に結果が表示され、すぐにコピーできます。二進数の2のように、その基数で使えない数字を入力するとエラーが表示されます。入れ替えボタンを押すと、変換の方向が逆になります。

仕組み

このツールは、数値をJavaScriptのBigIntとして読み取ります。BigIntはサイズに制限のない整数型であるため、64ビットの値やそれより大きな数も丸め誤差なく正確に変換できます。たとえば、十六進数の FFFFFFFFFFFFFFFF は、十進数では18446744073709551615です。次の入力に対応しています。

  • 先頭のマイナス記号。変換後も保持されます。十進数の-42は、二進数では-101010です。
  • プログラムで使われる接頭辞:二進数の 0b、八進数の 0o、十六進数の 0x。たとえば、0x1F は31に変換されます。
  • 数字のグループ間のスペースやアンダースコア。たとえば、1111 0000 や 1_000_000 のように入力できます。
  • 大文字または小文字の十六進数のアルファベット。変換結果は大文字で表示されます。

変換できるのは整数のみです。小数点を含む数値を入力すると、エラーが表示されます。