ベストアンサー1
これは、JS が数値に倍精度を使用しているためですが、ビットで演算を実行する場合、タスクは簡単ではありません。そのため、JS の倍精度を整数に変換する特定の命令を使用すると、作業が容易になります。
この ARM リンクでは、非常にわかりやすく説明されています。https://community.arm.com/processors/b/blog/posts/armv8-a-architecture-2016-additions
fuz のコメントに関する詳細情報を追加すると、FCVTZS
とFJCVTZS
(どちらも浮動小数点数を int に変換します) の違いは、オーバーフローが発生した場合、FJCVTZS
値はオーバーフローではなく 0x80000000 になることです。さらに、 は、FJCVTZS
変換がどのように行われたか (つまり、不正確であったか) を示すために例外を生成できます。
FJCVTZS
:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0801g/hko1477562192868.html
FCVTZS
:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/FCVTZS_float_int.html