Math 32位计算机如何处理大位数字?例512位整数

Math 32位计算机如何处理大位数字?例512位整数,math,computer-science,bit,Math,Computer Science,Bit,我一直在读一篇关于密码学的文章,我想“一台32位计算机实际上是如何对512位的值,甚至是64位的值执行操作的?” 有人能给我指出正确的方向吗?也许我不知道如何恰当地表达我想知道的东西,但谷歌搜索在解决这个问题上并没有太大帮助 谢谢 操作通过软件或专用硬件(用于加密)执行。例如库,请参阅和。一次32位。有标志指示进位、溢出等,允许通过重复操作进行多字运算 在坚果壳里,就像米奇说的那样,它只是一点一点地分解。处理它可能需要您的处理器一些时间,但这就是为什么我们现在有多核处理器来加速这个过程。这也是为

我一直在读一篇关于密码学的文章,我想“一台32位计算机实际上是如何对512位的值,甚至是64位的值执行操作的?”

有人能给我指出正确的方向吗?也许我不知道如何恰当地表达我想知道的东西,但谷歌搜索在解决这个问题上并没有太大帮助


谢谢

操作通过软件或专用硬件(用于加密)执行。例如库,请参阅和。

一次32位。有标志指示进位、溢出等,允许通过重复操作进行多字运算

在坚果壳里,就像米奇说的那样,它只是一点一点地分解。处理它可能需要您的处理器一些时间,但这就是为什么我们现在有多核处理器来加速这个过程。这也是为什么大多数操作系统都有32位和64位版本,最终是128位。如果您对此感兴趣,可以学习汇编语言和机器语言方面的一些课程

一个32位处理器可以将较大的数字拆分到多个寄存器上,尽管它比在单个32位寄存器上执行操作要慢。对于加法/减法,它只是从最低有效寄存器开始执行算术运算,然后将状态位传送到下一个有效寄存器。乘法/除法可能会变得更复杂一些,但主要的缺点是性能

有关更多信息,请参阅

还有这个问题:

这是一个扩展

假设我知道所有的一百个
single digital*single digital
乘法(从
0*0=0
9*9=81
),有人让我计算
561*845
。我可以说,“对不起,我不能把那么大的数字相乘”;或者,我可以回忆起我的童年教育并这样做:

       561
       845 *
----------
      2805
     2244
    4488   +
==========
    474045  
这只需要我能在任何给定的步骤中,在我已知的范围内进行乘法或加法(带进位)


现在,假设上面的每个符号不是十进制数字,而是一个32位字;而不是我,我们有一个处理器,可以将32位的字乘以64位的结果,然后加上(带进位)32位的字。瞧,我们有一个系统可以进行任意大的二进制乘法。

通过一次操作32位……这些算法实际上是你在小学时熟悉的算法,只是那时你没有意识到它们是算法。您使用的不是以10为基数的“数字”,而是以2为基数的**32个字。Knuth的“半数值算法”包含许多变体和分析。