質問

でGMPライブラリ....

どのように整数に対する操作の内部実行が行われることでしょうん? 6 = 0110,4 = 0100..andのような + 4 = 0110 + 0100 6 .. 何が乗算、除算、および他の操作の場合に起こります!? どのようにオーバーフロー・ビットや他のものを制御しない...

役に立ちましたか?

解決

最も基本的な多倍長ルーチンはアセンブリコードで書かれており、特定のCPU命令を利用しています。

追加のために、基本的な命令は、「ADD-と-キャリー」です。この命令は、2つのCPUレジスタおよびキャリービットの内容を追加し、レジスタに結果を保存し、オーバーフローが発生した場合、キャリービットを設定します。 2複数精度番号を追加するには、キャリービットがクリアされ、その後、各マルチプル精度値の最初の単語(通常C「unsigned int型」又は「符号なしのロング」)が追加され、結果が保存され、キャリー・ビット・セット次のforループ。詳細は

など、異なるサイズの入力を処理しています

乗算は、基本命令「MULT」だけ乗算二つのレジスタに格納する1つのCPUレジスタの結果の上半分と別のCPUレジスタに結果の下半分。

それが実際にCPU上で実行される方法の詳細については、あなたはCPUの命令セットを調査する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top