投稿
L=0A$=""FOR I=0TO LEN(B$)-1改行 C=ASC(B$[I])IF C==D[0]THEN L=!L:NEXT P=1C=C-L FOR J=0TO 14A$=A$+STR$(!!(C AND P))P=P*2NEXT A$=A$+STR$(!!(C AND P))NEXT 特殊65536進数から2進数への変換を行う処理 多分初心者には意味不明
4そうだね
プレイ済み
返信[1]
親投稿
2行目以降、改行って書くの忘れたけど気にしないで
0そうだね
プレイ済み
返信[2]
親投稿
どこに反応したんだろう
2そうだね
プレイ済み
返信[3]
親投稿
みほ kanachi_2002
たぶん初心者には役に立たないだろう。
1そうだね
プレイ済み
返信[4]
親投稿
MIKI ifconfig
れいさんのそもそも論で解決した風ですが… 1bitずつ処理するのをやめて4bitまとめて"0101"みたいに変換すればかなり速くなります。図のbin16(x)ってやつ。応用で8bitまとめればもっと速いかも。dim bin8$[256]みたいな。 それと長い文字列への追加はコピーが起きてどんどん遅くなるから、(続く)
1そうだね
プレイ済み
返信[5]
親投稿
MIKI ifconfig
一文字分ずつ配列E$[]に入れて、最後に二分法的なやり方でがっちんこすれば文字列の加算回数が最小になります。これでさらに速くなるはず。図のA$=CAT(0,LEN(B$)-1)です。
1そうだね
プレイ済み
返信[6]
親投稿
そうか、テーブル化を忘れていたようだ。 けど、このプログラムはoutofmemoryを避けるため文字列変数は減らしたいところ。
0そうだね
プレイ済み
返信[7]
親投稿
かなり早くなった (いまさら気が付いたけど私のプログラムの変換ルーチンは前後が逆になってる)
0そうだね
プレイ済み
返信[8]
親投稿
やっかいなことに化けバグの条件が変化した。 もしかしたら大量の文字列を扱ったせいでプチコンのバグを起こしてる可能性も否定できない
0そうだね
プレイ済み
返信[9]
親投稿
ちなみに8bitのテーブルにしました。
0そうだね
プレイ済み