私が理解している限り、BigInts は通常、数字を含む配列としてほとんどのプログラミング言語で実装されています。たとえば、2 つ追加すると、学校で知っているように、各数字が次々に追加されます。
246
816
* *
----
1062
* は、オーバーフローがあったことを示します。私は学校でこの方法を学び、実装したすべての BigInt 追加関数は上記の例と同様に機能します。
したがって、プロセッサーが 0 から2^32
/までの int のみをネイティブに管理できることは誰もが知っています2^64
。
つまり、ほとんどのスクリプト言語は、高レベルで大きな整数を使用した算術演算を提供するために、上記のように整数を配列として扱う BigInt ライブラリを実装/使用する必要があります。しかしもちろん、これはプロセッサよりもはるかに遅くなることを意味します。
だから私が自分自身に尋ねたのは:
- プロセッサーに BigInt 関数が組み込まれていないのはなぜですか?
他の BigInt ライブラリと同じように動作しますが、(はるかに) 高速で低レベルです。プロセッサはキャッシュ/RAM から 1 桁をフェッチし、それを追加して、結果を再度書き込みます。
私には素晴らしいアイデアのように思えますが、なぜそのようなものがないのでしょうか?