【问题标题】:Trying to find the Knuth discussion of quotient and remainder试图找到商和余数的 Knuth 讨论
【发布时间】:2019-02-26 08:03:00
【问题描述】:

我似乎记得曾经读过 tAOCP 分册之一 Knuth 关于计算整数商和余数的讨论。我的记忆是,他声称没有另一个就不可能计算一个,并且他认为结果都应该提供给程序员。问题是大多数编程语言都强制程序员计算 q = a/b 然后 r = a%b 之类的东西,但实际上 CPUB 做了两次相同的计算,这是一种浪费。

我刚刚在 MMIX Volume Fascicle 1 中搜索了第 1.3.1 节中对 DIV 的描述,但我没有找到我似乎记得的讨论。

谁能告诉我他们是否记得类似的讨论,以及我可以在哪里找到它?

【问题讨论】:

  • 你确定你是在其中一个分册(或 TAOCP 本身)中阅读的,而不是在采访或其他论文/书籍中阅读的吗?
  • 不,我不确定。大约 15 年前,我读了 MMIX 的书。很可能是我记错了。只是希望其他人记得和我一样的事情。

标签: integer-division knuth taocp mmix


【解决方案1】:

以下内容可能是您正在寻找的内容 - 这是我在迄今为止发布的所有 TAOCP 和(前)分册中找到的唯一相关提及。 (这只是句子的一部分,不是详尽的讨论,但记忆可能很棘手。)来自第 1 卷第 1 卷第 1.3' 节(MMIX),特别是 1.3.1'(MMIX 的描述)。如您所知,在“算术运算”下,DIV 运算被定义为使得DIV $X,$Y,$Z(如果$Z 不包含零)将$X 设置为包含$Y 中值的(下限)商和$Z,同时设置rR 寄存器来保存余数。

后来,在“MMIX vs reality”下,第二点是:

商业机器通常缺乏对整数运算的支持。例如,当x 为负数或 y 为负数;他们经常扔掉产品的上半部分。他们不将左右移位视为严格等价于乘法和除以 2 的幂。有时他们根本没有在硬件中实现除法;当他们处理除法时,他们通常假设 128 位被除数的上半部分为零。这样的限制使高精度计算变得更加困难。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2011-06-11
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多