python 中 ul 的替代

Alternative of ul in python

在 C++ 中,我可以使用 ul1ul 来表示 unsigned long int,其值为 1,在位级别表示为:00000000000000000000000000000001 .同样我们可以使用2ul等等。

我的问题是 python 中 ul 的替代项是什么。

写在python里就行了。 C++ 中的 1ul 之类的数字只是 C++ 的产物。

import math
x = 14
a = math.sqrt(1 + (4 * x))

print(a)

输出:

7.54983443527075

除非您依赖 unsigned long 限制 (例如,从 ULONG_MAX 滚动到 0 并且 vice-versa 递减;无法存储负值),您无需担心。 Python 的 int 类型是“无限精度”(它有限制,因为现实世界的计算机无法做到无限,但限制足够高,除非你尝试做,否则你永远不会遇到它们不使用 three-arg pow 之类的 RSA 加密数学之类的东西,即使那样,它通常也很慢,但仍然有效)。因此,对于您的用例:

a = math.sqrt(1 + (4 * x))  # Or (1 + (4 * x)) ** 0.5

工作正常。

如果你需要依赖unsigned long限制,那就更丑了;您可以在每个可能溢出的操作之后使用 0xFFFF_FFFF_FFFF_FFFF 显式屏蔽,或者对所有数学运算使用 ctypes.c_ulong 类型(常量转换回 c_ulong),但这通常不需要,并且您的用例不需要。