#!/usr/koeki/bin/ruby #coding: euc-jp STDERR.print("16 進数の数字: ") bse = 16 bse2 = 2 STDERR.printf("%d進数を%d進数に変換します。終了はq\n", bse, bse2) i = 0 # 桁をいれる bin = 0 # 2 進数変換の値 while true STDERR.printf("%d桁目:", i+1) m = gets.chomp # 桁の数 if m == "q" break elsif m == "a" m = 10 elsif m == "b" m = 11 elsif m == "c" m = 12 elsif m == "d" m = 13 elsif m == "e" m = 14 elsif m == "f" m = 15 end m = m.to_i bin += m * bse ** i # まず 10 進数に変換 i += 1 end n = bin while n > 1 printf("%d\n",n % bse2) n = n / bse2 end printf("%d\n",n) print("下から上に向かって読みます\n")