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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Python检查数字是否为32位整数?相关的知识,希望对你有一定的参考价值。

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

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

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

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

假设最大的32位整数是0xffffffff

然后,我们需要检查您的号码是否大于此值:

abs(n) <= 0xffffffff

围绕这个数字包装一个abs()也会处理负面情况。

另一答案

只是另一个想法,看看值是否可以打包为4个字节:

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

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

另一答案

对于无符号值,这将起作用:

>>> def is32(n):
...     try:
...         bitstring=bin(n)
...     except (TypeError, ValueError):
...         return False
...         
...     if len(bin(n)[2:]) <=32:
...         return True
...     else:
...         return False    
... 
>>> is32(2**32)
False
>>> is32(2**32-1)
True
>>> is32('abc')
False

以上是关于如何使用Python检查数字是否为32位整数?的主要内容,如果未能解决你的问题,请参考以下文章

五种js判断是否为整数(转)

Python:如何将 32 位有符号长整数转换为 7 位整数

转载--js中判断一个数是否为整数的方法

使用正则表达式验证器检查 11 位数字或为空

7 Python基本数据类型---数字

Study 4 —— 数据类型