基数 【radix】 base number / number base
概要
基数(radix)とは、位取り記数法で数値を書き記す際に各桁の重み付けの基本となる数。位が一つ上がる毎に何倍になるかを表す。我々が普段使っているのは左隣の桁が十倍の大きさになる十進数(十進法)であり、基数は十である。一般に、基数が正の整数nであるような記数法を「n進数」あるいは「n進法」という。ある桁の一つ上の桁はn倍の数を表し、一つ下の桁はn分の一の数を表す。十進数では一の位の隣が十の位で、以降順番に百の位、千の位…というように桁上りしていく。小数点以下は十分の一の位、百分の一の位、千分の一の位…といった具合である。
コンピュータとn進法
コンピュータでは情報を二つの状態(スイッチのオン・オフ、電圧の高低、0と1、真と偽など)の組み合わせに置き換えて扱う関係上、二や二の冪乗(四、八、十六…)が区切りの良い数となり、数値を扱う際に内部的には十進数ではなく二進数や十六進数がよく用いられる。
二進数では桁が上がる毎に重みが二倍になり、一の位、二の位、四の位、八の位…という具合に桁上りする。十六進数では十六倍で、一の位、十六の位、二百五十六の位、四千九十六の位…という形になる。
二進数の表記は「10010110」のようにアラビア数字の「0」と「1」のみを用いる。十六進数ではアラビア数字に該当する数字のない十から十五をアルファベットの「A」から「F」に対応付けて代用し、「F3E4D5」のように書き表す記法が普及している。
基数の表記
日常生活では基数の指定がなければ十進数を表すが、異なる基数の数が混在する議論では値のみを書き表しただけでは何進法の数のことか分からないため、「(10010110)2」「(F3E4D5)16」のように下付き文字で基数を十進表記で付記する記法が用いられることがある。
プログラミング言語などでも十進数以外の数値リテラルをプログラムコードなどに直接書くことができるよう、表記の仕方が定められていることがある。例えば、C言語やその記法を受け継ぐ多くの言語は先頭に「0x」を付けると十六進数を表す。C++言語(C++14)のように「0b」でニ進数リテラルを表す言語もある。