#module
#deffunc numenc val, int, int
mref rstr, 24 : mref integer, 1 : mref no, 2
rstr = ""
if (no < 2) || (no > 36) : return // 基数の下限・上限トラップ(念の為)
if integer < 0 : minus = 1 : else : minus = 0
if minus : syou = integer * -1 : else : syou = integer
tmp = ""
repeat
poke tmp, , (syou \ no > 9) * 7 + (syou \ no) + 48 // 10以上はアルファベットを使用
rstr = tmp + "" + rstr
syou = syou / no
if syou = 0 : break // 0になったら終了
loop
if minus : rstr = "-" + rstr
return
#global
// 準備
sdim cno, 280
number = 12345
cardinal = 8 // 0番目が2進数であるため、10進数は8
repeat 35, 2
if cno ! "" : cno += "\n"
cno += "" + cnt + "進数"
loop
// 配置
objsize 80, 25
pos 10, 10 : input number, , , 6
pos 100, 10 : mes "10進数 →"
pos 220, 10 : combox cardinal, 100, cno
pos 320, 10 : button "変換", *change
objsel 0
stop
*change
redraw 0
color 255, 255,255 : boxf 0, 40 : color 255
pos 10, 40 : mes "" + number + "(10)"
pos 20, 70 : mes "↓"
after = cardinal + 2
numenc result, number, after
pos 10, 100 : mes result + "(" + after +")" // 目的の基数に変換
redraw
stop
|