Windows 如何处理无符号 64 位整数?
How does Windows handle unsigned 64bit integers?
我想知道,仅限于 64 位的机器如何处理复杂的数学和涉及比它可以 'imagine' 更大的数字更大的数字的计算?例如,8 位系统如何添加大于 255 的数字?为什么它不会导致溢出?
我主要谈论的是基于 Windows 的系统,而不是任何特定的编程语言,我知道一些编程语言,例如 Python 可以处理有符号和无符号整数的近乎无限的数字,而无需问题。
谢谢。
-主控芯片
是"simply"在软件中模拟的。由于人类可以处理手指以外的数字,软件可以使用更多字节来存储更多位,并在右侧的 MSB 上传播位。
假设您在 8 位 µP 中使用 16 位:
你获取 LSB 并添加它们。如果随身携带,请考虑在内。
添加 MSB,最后添加进位。
附录A可以写成:8^1* (MSBa) + 8^0 * (LSBa)
B也一样。
"simply" 在软件中模拟。由于人类可以处理手指以外的数字,软件可以使用更多字节来存储更多位,并在右侧的 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)
我想知道,仅限于 64 位的机器如何处理复杂的数学和涉及比它可以 'imagine' 更大的数字更大的数字的计算?例如,8 位系统如何添加大于 255 的数字?为什么它不会导致溢出?
我主要谈论的是基于 Windows 的系统,而不是任何特定的编程语言,我知道一些编程语言,例如 Python 可以处理有符号和无符号整数的近乎无限的数字,而无需问题。
谢谢。
-主控芯片
是"simply"在软件中模拟的。由于人类可以处理手指以外的数字,软件可以使用更多字节来存储更多位,并在右侧的 MSB 上传播位。 假设您在 8 位 µP 中使用 16 位:
你获取 LSB 并添加它们。如果随身携带,请考虑在内。 添加 MSB,最后添加进位。
附录A可以写成:8^1* (MSBa) + 8^0 * (LSBa) B也一样。 "simply" 在软件中模拟。由于人类可以处理手指以外的数字,软件可以使用更多字节来存储更多位,并在右侧的 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)