FILE名:FILE_int2char.hsp
#module int2char
//	引数(0〜15)の16進表記を返す
//	引数の値が0〜15でないとerror
#defcfunc one_at_int2char 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
//	引数typeの値が2の時は16進の2桁の数字を返す
//	引数typeの値が3の時は10進の3桁の数字を返す
//	引数typeの値が2か3でないとerror
#defcfunc some_at_int2char int c,int type
if (type!=2)&(type!=3){
logmes "char2int内のerror"
logmes "第二引数の値は2か3にして下さい"
logmes "第二引数の値:"+str(type)
return -1
}
if (c<=-1)|(c>=256){
logmes "some_at_int2char内のerror"
logmes "第一引数は0〜255の値にして下さい"
logmes "第一引数の値:"+str(c)
return -1
}
if type==2{
t=c/16
tt=c\16
return ""+(one_at_int2char(t))+(one_at_int2char(tt))
}else{
if type==3{
t=c/100
tt=(c\100)/10
ttt=(c\10)
return ""+str(t)+str(tt)+str(ttt)
}
return -1
#global
/*	以下TESTコード。コメントアウト
repeat 30,-10
logmes ""+str(one_at_int2char(cnt))
loop
repeat 300,-10
logmes ""+some_at_int2char(cnt,2)
loop
logmes ""
repeat 300,-10
logmes ""+some_at_int2char(cnt,3)
loop
logmes ""
repeat 16
logmes ""+some_at_int2char(1,cnt)
loop

logmes ""+some_at_int2char('a',2)
logmes ""+some_at_int2char('b',2)
logmes ""+some_at_int2char('c',2)
logmes ""+some_at_int2char('d',2)
logmes ""+some_at_int2char('e',2)

logmes ""+some_at_int2char('a',3)
logmes ""+some_at_int2char('b',3)
logmes ""+some_at_int2char('c',3)
logmes ""+some_at_int2char('d',3)
logmes ""+some_at_int2char('e',3)

logmes ""+some_at_int2char('#',2)
logmes ""+some_at_int2char('$',2)
logmes ""+some_at_int2char('?',2)
logmes ""+some_at_int2char('\\',2)

logmes ""+some_at_int2char('#',3)
logmes ""+some_at_int2char('$',3)
logmes ""+some_at_int2char('?',3)
logmes ""+some_at_int2char('\\',3)*/