|
|
●概要 基数変換について、その方法の一例を紹介する。 ●数値とは? 数値は、以下のように定義できる。R進数で、 V = ai・Ri (i = 0 to N -1) である。係数 a を並べて、(aN-1aN-2・・・・a1a0)R と略記すれば、その数値の表現となる。日常的な10進では、()10 をも省略して、125 などと表示する。 ●基数変換とは、 n 進数 を m 進数にすることである。一般に値が整数であれば成立する。数値は抽象概念であるから、何進数で表現しようが、同じ値を持っている。人間は、多分、頭に浮かぶのは10進としての数値である。 ●変換方法 幾つかあると聞くが、一番分りよい一例を示す。 ある任意の値 V があるとして、これを R 進数で表現したい。今。R進数とできた場合、上の定義式を、展開すると、 V = aN-1・RN-1 + ・・・・ + a2・R2 + a1・R + a0 求めるものは、係数列 ai となる。 今、V を R で、整数除算すれば、 V \ R = aN-1・RN-2 + ・・・・ + a2・R1 + a1 ・・・ a0 (・・・ は、余りを表す) となる。この余りは、初めの係数となる。次に、商を再び R で整数除算すれば、今度は、a1 が求まる。 V が一般の数値であっても多倍長であっても理屈は同じである。 整数除算関数 IntDiv(Dv, D, Q, Rm) Dv:被除数、D:除数、Q:整数商、Rm:剰余 があれば、以下のようになる。 A() 求める係数列
|