1

在 GMP 库中......

整数运算的内部执行将如何完成?比如 6=0110,4=0100..and 6+4= 0110+0100.. 在乘法、除法和其他运算的情况下会发生什么!??它如何控制溢出位和其他东西......

4

1 回答 1

0

大多数基本的多精度例程都是用汇编代码编写的,并利用了特定的 CPU 指令。

另外,基本指令是“进位加法”。该指令将两个 CPU 寄存器的内容和进位位相加,然后将结果保存在一个寄存器中,如果溢出则设置进位位。要添加两个多精度数,请清除进位位,然后添加每个多精度值中的第一个字(通常是 C“unsigned int”或“unsigned long”),保存结果,并设置进位位为下一个循环。细节是处理不同大小的输入等。

对于乘法,基本指令“MULT”只是将两个寄存器相乘并将结果的上半部分存储在一个 CPU 寄存器中,将结果的下半部分存储在另一个 CPU 寄存器中。

有关如何在 CPU 上实际完成的详细信息,您需要研究 CPU 的指令集。

于 2010-01-28T04:20:30.627 回答