python中ul的替代方法

问题描述

在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_MAX0过渡,在递减上反之亦然;无法存储负值),则无需担心。 Python的int类型是“无限精度”(它有限制,因为现实世界中的计算机无法做到无限,但该限制足够高,除非您尝试不做RSA密码数学之类的工作,否则您将永远不会遇到它们。使用三参数pow,即使这样,它通常也很慢,仍然可以正常工作)。因此,对于您的用例:

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

工作正常。

如果您需要依靠unsigned long局限性,那就太丑了;您可以在每次可能溢出的操作之后对0xFFFF_FFFF_FFFF_FFFF使用显式屏蔽,或对所有数学使用ctypes.c_ulong类型(将常量强制转换回c_ulong),但这通常是不需要的,而不是您的用例。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...