#module
#deffunc numdec val, str, int
mref stt, 16 : mref string, 33 : mref no, 2
stt = 0
if (no < 2) || (no > 36) : return // 基数の下限・上限トラップ(念の為)
s = string
strlen len, s
minus = 0
tmp = 0
peek tmp, s
if tmp = '-' {
minus = 1
len--
strmid s, s, 1, len
}
omomi = 1
repeat len, 1
peek tmp, s, len - cnt
tmp -= ((tmp >= 'A') * 7 + 48) // アルファベットAは10
stt += tmp * omomi
omomi = omomi * no
loop
if minus : stt = stt * -1
return
#global
// 準備
sdim number, 8 : 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, , , 7
pos 100, 10 : combox cardinal, 100, cno
pos 200, 12 : mes "→ 10進数"
pos 320, 10 : button "変換", *change
stop
*change
redraw 0
color 255, 255,255 : boxf 0, 40 : color 255
before = cardinal + 2
numdec data, number, before
pos 10, 40 : mes number + "(" + before + ")"
pos 20, 70 : mes "↓"
pos 10, 100 : mes "" + data + "(10)" // 目的の基数に変換
redraw
stop
|