【文字列演算モジュール】 =================================================================================================== はじめに 本モジュールはhs形式に準拠しています。 HSP3のダウンロードフォルダ内の[common]フォルダに置いた場合、 HSPのヘルプに自動認識され、ヘルプに追加されます。 =================================================================================================== 使用方法 ①ダウンロードしたzipファイルを解凍してください。 ②使用するプログラムと同じディレクトリか、  HSP3の[common]フォルダに[arithmetic_system.hsp]を入れてください。 ③arithmetic_system.hspをincludeしてください。  #include "arithmetic_system.hsp" ●注意事項 各関数に使用できる文字は、半角数字と半角ハイフンのみです。(以下列挙) [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [-] =================================================================================================== 命令説明 1.整数を3桁ずつのカンマ区切りに変換 "***,***,***,***" = numeral_system_comma("************") 引数の範囲 桁数をintで管理しているため、"整数"で約21億桁までです(2^32-1桁) 2.整数を日本語命数に変換 "****億****万****" = numeral_system_jp("************") 引数の範囲 桁数をintで管理しているため、"整数"で約21億桁までです(2^32-1桁) 3.文字列整数演算 "*********" = str_arithmetic(計算モード , "整数1" , "整数2") 計算モード: 0 = 加法 1 = 減法 2 = 乗法 3 = 除法 4 = インクリメント("整数2"は無視) 5 = デクリメント ("整数2"は無視) 6 = モジュロ演算 7 = モジュロ演算2(直前の除法の余りを出力) ("整数1"/"整数2"ともに無視) 引数の範囲 桁数をintで管理しているため、"整数1"/"整数2"ともに約21億桁までです(2^32-1桁) なお、乗法に関しては計算後が21億桁以内になるようにしてください 備考 除法の"整数2"を"0"で指定した場合、"0"が返ります。 モジュロ演算の"整数2"を"0"で指定した場合、"0"が返ります。 除法を実行せずにモジュロ演算2を行った場合、"0"が返ります。 直前の除法の"整数2"を"0"で指定しモジュロ演算2を行った場合、"0"が返ります。 a/b=c…dの時、モジュロ演算は常にa=b*c+dを満たすように返ります。 b+ c=- ↑ c=+ d=- │ d=+ ──┼─→ a+ c=+ │ c=- d=- │ d=+ なお、モジュロ演算2 str_mod2()を直接呼び出した場合はその限りではありません。 負数の処理がこの関数の中にあるため、 基本はこの関数で演算することを推奨します。 これ以下の関数はstr_arithmetic()で呼び出すための補助関数で、 使い勝手はあまり良くありません。(仕様を守れば直接使用しても問題ないですが) 4.文字列自然数加法 "*********" = str_add("自然数1" , "自然数2") str_arithmetic()呼び出し用の関数です。 負数の使用はできません。 5.文字列自然数減法 "*********" = str_sub("自然数1" , "自然数2") str_arithmetic()呼び出し用の関数です。 負数の使用はできません。 また、解が負数にならないようにしてください。 6.文字列自然数乗法 "*********" = str_mul("自然数1" , "自然数2") str_arithmetic()呼び出し用の関数です。 負数の使用はできません。 "自然数1">="自然数2"の方が処理が速いです。(多分) 7.文字列自然数除法 "*********" = str_div("自然数1" , "自然数2") str_arithmetic()呼び出し用の関数です。 負数の使用はできません。 "整数2"を"0"で指定した場合、"0"が返ります。 8.文字列自然数モジュロ演算 "*********" = str_mod("自然数1" , "自然数2") str_arithmetic()呼び出し用の関数です。 負数の使用はできません。 "整数2"を"0"で指定した場合、"0"が返ります。 9.文字列自然数モジュロ演算2(直前の除法の余りを出力) "*********" = str_mod2() str_arithmetic()呼び出し用の関数です。 負数の使用はできません。 除法を実行する前に呼び出した場合、"0"が返ります。 直前の除法の"整数2"を"0"で指定した場合、"0"が返ります。 str_arithmetic()で負数を含む除算を行った場合、 この関数を直接呼び出すと符号が正しく返りません。 10.文字列自然数インクリメント "*********" = str_inc("自然数") str_arithmetic()呼び出し用の関数です。 負数の使用はできません。 11.文字列自然数デクリメント "*********" = str_dec("自然数") str_arithmetic()呼び出し用の関数です。 負数の使用はできません。 "0"以下を指定した場合、負数でのデクリメントも一応行えますが、 処理の関係上、桁数が8桁を超えるとバグが発生します。 12.文字列整数比較 返り値 = str_compare("整数1" , "整数") 返り値: 0 = ["整数1"="整数2"] 1 = ["整数1">"整数2"] 2 = ["整数1"<"整数2"] 13.文字列自然数比較 返り値 = str_compare_us("自然数1" , "自然数2") 返り値: 0 = ["自然数1"="自然数2"] 1 = ["自然数1">"自然数2"] 2 = ["自然数1"<"自然数2"] =================================================================================================== 制作 2023/09/03 制作 2023/09/05 改訂 2023/10/04 改訂 2023/10/05 改訂 木製ナット ▼Twitterアカウント @WoodenNut27 (なお、諸事情により連絡が付かない場合もございますので、予めご了承ください) =================================================================================================== その他 使用・改造は自由、クレジットの表示も不要です。 ただし、私の名前を用いずの再配布はご遠慮頂ければと思います。 アンインストールはzipファイルを解凍してできたファイルを削除してください。 レジストリの操作等は一切しておりませんので、それでアンインストールは完了です。 ===================================================================================================