【问题标题】:How does Windows handle unsigned 64bit integers?Windows 如何处理无符号 64 位整数?
【发布时间】:2016-06-28 14:26:45
【问题描述】:

我想知道,一台仅限于 64 位的机器如何处理复杂的数学和计算,其中涉及的数字大于它可以“想象”的更大数字?例如,一个 8 位系统如何添加大于 255 的数字?为什么不会导致溢出?

我主要谈论的是基于 Windows 的系统,而不是任何特定的编程语言,我确实知道一些编程语言,例如 Python 可以毫无问题地处理有符号和无符号整数的接近无限位。

谢谢。

-主芯片

【问题讨论】:

  • 在软件中“简单地”模拟。由于人类可以处理超出手指的数字,因此软件可以使用更多字节来存储更多位,并在右侧的 MSB 上传播位。假设您在 8 位 µP 中使用 16 位:
  • 人类如何处理大于 9 的数字?

标签: integer 64-bit large-data bigdata


【解决方案1】:

在软件中“简单地”模拟。由于人类可以处理超出手指的数字,因此软件可以使用更多字节来存储更多位,并在右侧的 MSB 上传播位。 假设您在 8 位 µP 中使用 16 位:

您获取 LSB 并添加它们。如果携带考虑它。 添加 MSB,最后添加进位。

附录 A 可以写成:8^1* (MSBa) + 8^0 * (LSBa) B也是一样。 在软件中“简单地”模拟。由于人类可以处理超出手指的数字,因此软件可以使用更多字节来存储更多位,并在右侧的 MSB 上传播位。 假设您在 8 位 µP 中使用 16 位:

您获取 LSB 并添加它们。如果携带考虑它。 添加 MSB,最后添加进位。

附录 A 可以写成: 8^1* (MSBa) + 8^0 * (LSBa) B也一样: 8^1* (MSBb) + 8^0 * (LSBb)

所以 A+B 是: 8^1* (MSBa) + 8^0 * (LSBa) + 8^1* (MSBb) + 8^0 * (LSBb) =

8^1* (MSBa + MSBb) + 8^0 * (LSB a + LSBb)

【讨论】:

    猜你喜欢
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 2011-11-10
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    相关资源
    最近更新 更多