筆算で16進数を求めるときの手順をそのまま踏襲する。 そのときに、「何回目の割り算か」を記録し、各回毎の割り算の余りを 配列に記録して行く。
なお、ある変数 x に0から15の値が入っている場合に、 その数に対応する16進数1桁文字列を出すには以下のようにするとよい。
print("0123456789abcdef"[x])
以上をまとめて大まかなプログラムの流れの見本にしたものを示す。
print("10進数: ")
n = 入力して整数化
空の配列を変数に用意
添字用変数に0を代入
while nが0より大きい間
配列の最新要素に「nを16で割った余り」を代入
n を16で割て再代入
添字を1増やす
end
添字を1減らす(添字が1大きい状態でループを終わるので)
while 添字が0以上である間
print("0123456789abcdef"[添字位置の値])
end
puts("")
たとえば、配列を hex 変数だとし場合以下のように各桁の値が格納される。
16) 64206 (余り) 16) 4012 …… 14 → e → hex[0]=14 16) 250 …… 12 → c → hex[1]=12 16) 15 …… 10 → a → hex[2]=10 ↑出力時は 16) 0 …… 15 → f → hex[3]=15 ↑下から上へ → hex[4]は nil (添字は4まで行くが代入されない)本日の課題へ