在GMP库中...
如何在内部执行对整数的操作?就像6=0110,4=0100..and 6+4= 0110+0100..在乘法、除法和其他运算的情况下会发生什么!??它如何控制溢出位和其他东西..。
发布于 2010-01-28 12:20:31
大多数基本的多精度例程都是用汇编代码编写的,并利用了特定的CPU指令。
对于加法,基本指令是“进位加法”。该指令将两个CPU寄存器的内容和进位位相加,然后将结果保存在寄存器中,如果存在溢出,则设置进位位。要将两个多精度数相加,请清除进位位,然后将每个多精度值中的第一个字(通常是C "unsigned int“或"unsigned long")相加,保存结果,并为下一个循环设置进位位。细节在处理不同大小的输入等。
对于乘法,基本指令"MULT“只是将两个寄存器相乘,并将结果的上半部分存储在一个CPU寄存器中,将结果的下半部分存储在另一个CPU寄存器中。
有关如何在CPU上实际执行此操作的详细信息,您需要研究CPU的指令集。
https://stackoverflow.com/questions/2148852
复制相似问题