2024-04-18 07:55:18 发布
网友
在我的程序中,我看到一个字符串,我想知道它是否代表32位整数。
目前,我首先使用isdigit()检查它是否是一个数字,然后检查它是否超过2^32的值(假设我不关心无符号值)。
isdigit()
检查输入字符串是否包含有效的32位整数的最佳方法是什么?
假设最大的32位整数是^{}
然后,我们需要检查我们的数字是否大于此值:
abs(n) <= 0xffffffff
把一个abs()包裹在数字周围也会处理阴性病例。
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)。
pack("I", n)
假设最大的32位整数是^{}
然后,我们需要检查我们的数字是否大于此值:
把一个
abs()
包裹在数字周围也会处理阴性病例。只是另一个想法,看看这个值是否可以压缩为4个字节:
如果使用无符号值,则
pack("I", n)
。相关问题 更多 >
编程相关推荐