数値文字列を文字コードに 文字コードを数値に変換するモジュール 今やってるモジュールが10進も可で変換するのではなく
主に16進の文字列に変換するのでモジュールを改造してみました
FILE名:FILE_int2char_char2int_02.hsp
#module int2char_02
//	引数(0〜15)の16進表記を返す
//	引数の値が0〜15でないとerror
#defcfunc one_at_int2char_02 int cc
if (cc<=-1)|(cc>=16){
logmes "one_at_int2char内のerror"
logmes "引数は0〜15の値にして下さい"
logmes "引数の値:"+str(cc)
return -1
}
switch cc
case 0 :return "0"
case 1 :return "1"
case 2 :return "2"
case 3 :return "3"
case 4 :return "4"
case 5 :return "5"
case 6 :return "6"
case 7 :return "7"
case 8 :return "8"
case 9 :return "9"
case 10 :return "a"
case 11 :return "b"
case 12 :return "c"
case 13 :return "d"
case 14 :return "e"
case 15 :return "f"
swend
return -1
//	引数cを文字列に変換して返す
//	引数cの値が0〜255でないとerror
//	2桁の数字を返す
#defcfunc some_at_int2char_02 int c
if (c<=-1)|(c>=256){
logmes "some_at_int2char内のerror"
logmes "第一引数は0〜255の値にして下さい"
logmes "第一引数の値:"+str(c)
return "error"
}
t=0
tt=0
t=c/16
tt=c\16
return ""+str(one_at_int2char_02(t))+str(one_at_int2char_02(tt))
#global
#module char2int_02

//	16進表記の引数(0〜15)を数値に変換して返す
//	引数の長さが1でないとerror
//	引数の値が0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,fの
//	どれかでないとerror
#defcfunc one_at_char2int_02 str cc
f=0
ff=0
fff=0
l=strlen(cc)
if l!=1{
logmes "one_at_char2int内のerror"
logmes "文字列型引数ccの長さは1にして下さい"
logmes "引数の長さ:"+l
return -1
}

if (cc=="0")|(cc=="1")|(cc=="2")|(cc=="3")|(cc=="4"){f=1}
if (cc=="5")|(cc=="6")|(cc=="7")|(cc=="8")|(cc=="9"){ff=1}
if (cc=="a")|(cc=="b")|(cc=="c")|(cc=="d")|(cc=="e")|(cc=="f"){fff=1}
if (f==0)&(ff=0)&(fff=0){
logmes "one_at_char2int内のerror"
logmes "引数は"
logmes "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f"
logmes "のどれかにして下さい"
logmes "引数の値:"+cc
return -1
}
switch cc
case "0":return 0
case "1":return 1
case "2":return 2
case "3":return 3
case "4":return 4
case "5":return 5
case "6":return 6
case "7":return 7
case "8":return 8
case "9":return 9
case "a":return 10
case "b":return 11
case "c":return 12
case "d":return 13
case "e":return 14
case "f":return 15
swend
return -1
//	引数cを文字列に変換して返す
//	引数cの値が0〜255でないとerror
#defcfunc some_at_char2int_02 str c
l=strlen(c)
if (l!=2){
logmes "some_at_char2int内のerror"
logmes "文字列型引数cの長さは2にして下さい"
logmes "引数の長さ:"+l
logmes "引数の値:"+c
return "error"
}
ccc=c
n=strmid(ccc,0,1)
m=strmid(ccc,1,1)
mm= (one_at_char2int_02(n)*16)+(one_at_char2int_02(m))
mmm=""
poke mmm,0,mm
return mmm
#global

/*	以下TESTコード。コメントアウト
//	int2charのTEST
repeat 30,-10
logmes ""+str(one_at_int2char_02(cnt))
loop
repeat 300,-10
logmes ""+some_at_int2char_02(cnt)
loop
logmes ""
logmes ""+some_at_int2char_02('a')
logmes ""+some_at_int2char_02('b')
logmes ""+some_at_int2char_02('c')
logmes ""+some_at_int2char_02('d')
logmes ""+some_at_int2char_02('e')

logmes ""+some_at_int2char_02('#')
logmes ""+some_at_int2char_02('$')
logmes ""+some_at_int2char_02('?')
logmes ""+some_at_int2char_02('\\')

//	char2intのTEST
s="abcde"
logmes str(one_at_char2int_02(s))
s="ab"
logmes str(one_at_char2int_02(s))
s="a"
logmes str(one_at_char2int_02(s))
s=""
logmes str(one_at_char2int_02(s))

s="abcde"
logmes str(some_at_char2int_02(s))
s="ab"
logmes str(some_at_char2int_02(s))
s="a"
logmes str(some_at_char2int_02(s))
s=""
logmes str(some_at_char2int_02(s))

ss="ABCabcdefghi0123456789|%$"
l=strlen(ss)
repeat l
t=strmid(ss,cnt,1)
logmes str(one_at_char2int_02(t))
loop

t=""
repeat 300,-10
t=some_at_int2char_02(cnt)
logmes str(some_at_char2int_02(t))
loop
logmes ""

t=some_at_int2char_02('a')
logmes str(some_at_char2int_02(t))
t=some_at_int2char_02('b')
logmes str(some_at_char2int_02(t))
t=some_at_int2char_02('c')
logmes str(some_at_char2int_02(t))
t=some_at_int2char_02('d')
logmes str(some_at_char2int_02(t))
t=some_at_int2char_02('e')
logmes str(some_at_char2int_02(t))

t=some_at_int2char_02('3')
logmes str(some_at_char2int_02(t))
t=some_at_int2char_02('$')
logmes str(some_at_char2int_02(t))
t=some_at_int2char_02('?')
logmes str(some_at_char2int_02(t))
t=some_at_int2char_02('\\')
logmes str(some_at_char2int_02(t))*/