【问题标题】:How to convert integer to unsigned 32 bit in python?如何在python中将整数转换为无符号32位?
【发布时间】:2015-02-13 08:33:06
【问题描述】:

例如,如果我们将 1 转换为无符号 32 位,它将是 00000000000000000000000000000001

你如何在 python 中实现这一点?

【问题讨论】:

  • "{:032b}".format(1)?
  • 您的意思是为了显示目的,还是需要将数字转换为正好是 32 位的类型(例如,将其打包成结构)?
  • 您要解决的问题是什么?请阅读the X-Y problem
  • 我需要将其转换为 32 位。
  • 您想要的解决方案是转换,但这不是您要解决的实际问题。您尝试解决的问题可能有其他解决方案。如果不告诉我们为什么您想要这种转换,就会更难为您提供一个以(对您而言)令人满意的方式工作的解决方案。

标签: python int bit unsigned


【解决方案1】:
def convert(i):
    return int(bin(i+2**32)[-32:])

print convert(1)
print convert(32)
print convert(100)
print convert(-1)
print type(convert(1))

输出

00000000000000000000000000000001
00000000000000000000000000100000
00000000000000000000000001100100
11111111111111111111111111111111
<type 'long'>

【讨论】:

    【解决方案2】:
    bin(1)[2:].zfill(32)
    

    '000000000000000000000000000000001'

    【讨论】:

    • 这段代码创建了一个字符串,将32位表示为“0”或“1”;它实际上并没有创建一个 32 位整数 value.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 2014-02-20
    相关资源
    最近更新 更多