1

GMPライブラリで...

整数に対する演算の内部実行はどのように行われますか?6 = 0110,4 =0100..および6+4 = 0110 + 0100 ..のように、乗算、除算、およびその他の演算の場合はどうなりますか!?? オーバーフロービットなどをどのように制御しますか...

4

1 に答える 1

0

ほとんどの基本的な倍精度ルーチンはアセンブリ コードで記述され、特定の CPU 命令を利用します。

また、基本命令は「ADD-with-Carry」です。この命令は、2 つの CPU レジスタの内容とキャリー ビットを加算し、結果をレジスタに保存し、オーバーフローが発生した場合はキャリー ビットを設定します。2 つの多倍精度数を加算するには、キャリー ビットがクリアされ、各倍精度値の最初のワード (通常は C の「unsigned int」または「unsigned long」) が加算され、結果が保存され、キャリー ビットが設定されます。次のループのために。詳細は、さまざまなサイズの入力の処理などにあります。

乗算の場合、基本命令「MULT」は 2 つのレジスタを乗算し、結果の上半分を 1 つの CPU レジスタに格納し、結果の下半分を別の CPU レジスタに格納します。

CPU で実際にどのように実行されるかについて詳しくは、CPU の命令セットを調査する必要があります。

于 2010-01-28T04:20:30.627 に答える