2010-01-27 44 views
1

在GMP库中....GMP ..binary execution

内部对整数的操作如何执行? 像6 = 0110,4 = 0100..and 6 + 4 = 0110 + 0100 .. 什么乘法,除法等操作的情况发生!? 它是如何控制溢出位和其他东西的...

+0

对于内部算法,你应该看一看:http://gmplib.org/manual/Algorithms.html#Algorithms – tur1ng 2010-01-27 17:24:15

回答

0

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

对于另外,基本指令为“ADD与 - 携带”。该指令会将两个CPU寄存器的内容和进位位相加,然后将结果保存在一个寄存器中,并在进位溢出时将进位位置1。要添加两个多精度数字,进位位被清零,然后添加每个多精度值中的第一个字(通常是C“unsigned int”或“unsigned long”),保存结果并设置进位位为下一个循环。详细信息处理不同大小的输入等。

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

以了解如何它实际上是一个CPU上完成的,你需要研究CPU的指令集。