【HSP】ビット単位の 読み出し 書き込み モジュール 高速化【プラグイン】

【HSP】ビット単位の 読み出し 書き込み モジュール 高速化【プラグイン】

高速化と行っても、ただ以前作ったモジュールをC++に移植してプラグインにしただけなんですが…。
それでも13倍ぐらい早くなりました!! (C++なのにこの遅さなのは、HSP用にいろいろ遠回りして処理しているから…?)
C++のことをまだよくわかっていなかったりして、何度もエラー出しては直し、エラー出しては直し…を繰り返してやっと完成したので他にもバグがあるかもしれません…。そこはご了承ください…。
ダウンロードは↓から。
書式は以前とほとんど変わりませんが、bitstr命令を関数に変更しました。

// 整数を2進数(文字列)に変換
// bitstr p1,p2
// p1=変数 : 結果を返す変数
// p2 : 変換元の値
#deffunc bitstr var _var,int _value
memexpand _var,64 ; 本当は32
repeat 8
s256=_value>>(cnt<<2)&15
s256=s256<<24|s256<<15|s256<<6|s256>>3
lpoke _var,7-cnt<<2,s256&0x01010101|0x30303030
loop
return

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

// 整数を2進数(文字列)に変換
// val = bitstr(p1)
// p1 : 変換元の値
#cmd bitstr 0x009

あと、あいかわらず引数の値の範囲の確認してないです…。
決められた範囲以外の数値指定するとバグります。
そうそう、ダウンロードしていただければわかるとは思うのですけど、念のため使い方を。
bit_function.dllをソースコードと同じ場所 (実行ファイル作成時に備えて) に置き、bit_function.asも同じ場所においてbit_function.asをインクルードしてやれば、bit_function.asに書いてある関数や命令が使用できるようになります。
さ~て、これからもプラグイン作成やHSPやC言語 (C++) 頑張っていくぞ~!!
↓クリック (投票) お願いしま~す
bit ビット 操作 関数 演算 計算 算出 読み 書き 込み 出し 入力 出力 モジュール サンプル スクリプト ソース 2 4 8 16 32 64 128 256 進数 進法