python 中 ul 的替代
Alternative of ul in python
在 C++ 中,我可以使用 ul
或 1ul
来表示 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
),但这通常不需要,并且您的用例不需要。
在 C++ 中,我可以使用 ul
或 1ul
来表示 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
),但这通常不需要,并且您的用例不需要。