如何使用Python检查数字是否为32位整数?

2024-04-18 07:55:18 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的程序中,我看到一个字符串,我想知道它是否代表32位整数。

目前,我首先使用isdigit()检查它是否是一个数字,然后检查它是否超过2^32的值(假设我不关心无符号值)。

检查输入字符串是否包含有效的32位整数的最佳方法是什么?


Tags: 方法字符串程序符号代表数字整数关心
3条回答

假设最大的32位整数是^{}

然后,我们需要检查我们的数字是否大于此值:

abs(n) <= 0xffffffff

把一个abs()包裹在数字周围也会处理阴性病例。

>>> def is_int32(number):
...     try:
...         return not(int(number)>>32)
...     except ValueError:
...         return False

只是另一个想法,看看这个值是否可以压缩为4个字节:

>>> from struct import pack, error
>>> def test_32bit(n):
...     try:
...             pack("i", n)
...     except error:
...             return False
...     return True
... 

如果使用无符号值,则pack("I", n)

相关问题 更多 >