BigInt 除算 (a / b, 切り捨て)
bi_div a, b
a : BigInt ハンドル (被除数) b : BigInt ハンドル (除数)
(プラグイン / モジュール : hspmathex.dll)
a / b の商を BigInt として return します (整数除算、余りは切り捨て)。 余りも必要な場合は別途 bi_mod を呼ぶか、事前に bigdec_div で 浮動小数精度の商を取るか検討してください。 b が 0 の場合はハンドル 0 が返ります。
#include "hspmathex.as"
a = bi_create_str("1000000000000")
b = bi_create_str("7")
q = bi_div(a, b)
sdim s, 64
bi_to_str q, s, 10
mes s
bi_free a : bi_free b : bi_free q
stop
| bi_mod | BigInt 剰余 | (iron_bigint.hsp) |
| bi_mul | BigInt 乗算 | (iron_bigint.hsp) |
| bigdec_div | BigDec 除算 (a / b, 精度・丸め指定) | (hspmathex.dll) |
| プラグイン / モジュール | hspmathex.dll |
| バージョン | 3.8 |
| 作成日 | 2026/04/18 |
| 著作者 | IronHSP |
| URL | https://github.com/inovia/IronHSP |
| 備考 | hspmathex.dll は次の 3 種類の API を 1 つの DLL で提供します。
------------------------------------------------------------ (1) HSPVAR 拡張型 - 通常の変数と同じ感覚で扱える任意精度数値型 ------------------------------------------------------------ #include "hspmathex.as" 追加される変数型: bigint ... 任意精度整数 (Java の BigInteger 相当) bigdec ... 任意精度10進固定小数 (Java の BigDecimal 相当) これらの型の変数は + - * / \ & | ^ == != < > <= >= 等の演算子で 自然に書けます。文字列化は str()、型名は vartype() で取得できます。 変数の寿命管理 (メモリ解放) は HSPVAR 機構が自動で行うため、 ハンドルを明示的に解放する必要はありません。 ------------------------------------------------------------ (2) ハンドルベース API - 高速・低オーバーヘッドのスタイル ------------------------------------------------------------ bi_* : BigInt 操作 (bi_create_str / bi_add / bi_mul / ...) bigdec_* : BigDec 操作 (bigdec_create / bigdec_div / bigdec_sqrt / ...) 整数や文字列からハンドル (int) を生成し、各演算関数はハンドルを 受け取って結果ハンドルを返します。不要になったハンドルは必ず bi_free / bigdec_free で解放してください。忘れるとリークします。 ハンドル 0 は常に無効値です (失敗時に返されます)。 ------------------------------------------------------------ (3) SIMD API - SSE/AVX/AVX2 ベクトル演算 ------------------------------------------------------------ simd_has_* : 実行 CPU の SIMD 対応判定 (CPUID + XGETBV) simd_cpu_name : CPU ブランド名取得 simd_*_d : double 配列演算 (AVX 優先、SSE2 フォールバック) simd_*_i : int32 配列演算 (AVX2 優先、SSE2 フォールバック) simd_*_f : float 配列演算 (AVX 優先、SSE フォールバック) simd_matmul_* : 行列積 (row-major, f/d 両対応) simd_pixel_* : 画像処理 (alpha ブレンド / グレースケール) SIMD 関数群は C ABI の __cdecl としてエクスポートされているため、 通常は iron_simd.hsp のラッパを介して呼び出すのが簡単です。 #uselib で直接呼ぶこともできます。 ------------------------------------------------------------ 依存: hspmathex.dll (x64 では hspmathex_64.dll) を実行ファイルと 同じディレクトリに配置してください。 サンプル: #include "hspmathex.as" a = bigint("12345678901234567890") b = bigint("99999999999999999999") c = a + b mes str(c) mes vartype(a) stop |
| タイプ | 拡張命令 |
| グループ | hspmathex |
| 対応環境 |
|
| hs ファイル | hsphelp\hspmathex.hs |