#author("2018-01-05T14:44:49+09:00","","")
*NO_547_DOC [#zeea7294]
よし。写経しながら改造すっか~
~
で、気付いた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)