NO_547_DOC

よし。写経しながら改造すっか

で、気付いたw

コレ。数値→文字列で
僕が書きたいの。文字列→数値でした(2進数) 爆

で、Let's HSPさんとこにありそうなかんじしたので
検索かけたら本当にありましたw

#uselib "msvcrt"
#cfunc strtol "strtol" str, nullptr, int

;	2進数
	mes strtol("101101", 2)

誰書いてもこう使うしかないから貼って大丈夫ですよね
著作権があるとしたらmsvcrt書いた人(企業?)ですよねw

そういえば現在の書式
0は1になってて1は2になってましたw
212212みたいなw

ハイ。写経終わりました。モジュールも書きました

ver 0.1

ver 0.2 正の数は1最初の文字が1 負の数は最初の文字が2になります

#uselib "msvcrt"
#cfunc strtol "strtol" str, nullptr, int

#module
//	1or2 2進数データを 0or1 2進数データ に変換
#defcfunc get_12to01 str p_str,local p_tmp,local _2sinn_ar,local tmp_l,local tmp4peek,local r_str
;p_tmp="112212"
p_tmp=p_str
dim _2sinn_ar,40
tmp_l=strlen(p_tmp)
;mes tmp_l
repeat tmp_l
tmp4peek=peek(p_tmp,cnt)
if tmp4peek=='1':_2sinn_ar.cnt='0'
if tmp4peek=='2':_2sinn_ar.cnt='1'
loop
sdim r_str,40
repeat tmp_l
poke r_str,cnt,_2sinn_ar.cnt
loop

return r_str
//	1:プラス 1を返す か 2:マイナス -1を返す
#defcfunc get_pm str p_str,local tmp_str,local _4peek
	tmp_str=p_str
	_4peek=peek(tmp_str,0)
	if _4peek='1':return 1
	if _4peek='2':return -1
	return -2//error
#global
//	変換前データ
str_a="1112212"
//	最初の文字取り出し:1なら+2なら-
str_aa=strmid(str_a,0,1)
l_str_a=strlen(str_a)
//	2文字目から文字列の最後まで取り出し。2進数の数値が該当する
str_ab=strmid(str_a,-1,(l_str_a-1))
//	1:プラス か 2:マイナス
mes str_aa
//	(たぶんw)2進数の文字列データ
mes str_ab
//	1or2 2進数データを 0or1 2進数データ に変換して表示
mes get_12to01(str_ab)
//	2進数を数値に変換したのを表示
mes strtol(get_12to01(str_ab), 2)
//	2進数を数値に変換してプラスかマイナスにしたのを表示
mes strtol(get_12to01(str_ab), 2)*get_pm(str_aa)

//	変換前データ
str_b="2112212"
//	最初の文字取り出し:1なら+2なら-
str_ba=strmid(str_b,0,1)
l_str_b=strlen(str_b)
//	2文字目から文字列の最後まで取り出し。2進数の数値が該当する
str_bb=strmid(str_b,-1,(l_str_b-1))
//	1:プラス か 2:マイナス
mes str_ba
//	(たぶんw)2進数の文字列データ
mes str_bb
//	1or2 2進数データを 0or1 2進数データ に変換して表示
mes get_12to01(str_bb)
//	2進数を数値に変換したのを表示
mes strtol(get_12to01(str_bb), 2)
//	2進数を数値に変換してプラスかマイナスにしたのを表示
mes strtol(get_12to01(str_bb), 2)*get_pm(str_ba)