【问题标题】:Python 3, Converting a string storing binary data to IntPython 3,将存储二进制数据的字符串转换为 Int
【发布时间】:2013-08-21 02:44:18
【问题描述】:

我的变量 Number 等于“0b11001010”,我希望它是 int 类型,就像存储普通二进制文件一样,例如0b11001010

Number = "0b11001010"
NewNumber = 0b11001010

有没有一个非常简单的方法,我忽略了它?

谢谢。

【问题讨论】:

  • 0b11001010 只是 语法糖,一种拼写整数的不同方式。 0b11001010202 的含义相同,都是整数值 202。
  • 您可以将NewNumber 的值打印为二进制,但不会使用该表示法存储

标签: python string binary


【解决方案1】:

在python中你只能将它创建为二进制值(作为语法糖),它会立即转换为整数。自己试试吧:

>>> 0b11001010
202

八进制和十六进制值也会发生同样的事情。因此,您可以使用 int() 函数的 base 参数将二进制字符串转换为整数,例如:

>>> int('0b11001010', 2)
202

转换后你可以对它做任何操作——就像整数一样,因为它是一个整数。

当然,您可以随时将其转换回二进制字符串,使用内置的bin() 函数:

>>> bin(202)
0b11001010

【讨论】:

  • 输出仍然是一个字符串。你可以只用print(Number) 就可以了。
  • 如果我这样做,type(bin(int(Number, 2))) 它以字符串的形式出现,我发送这个数字的函数只能接受二进制形式的 int :/。如果你愿意,我可以发送一个小代码。
  • @JamesClarke 请发送!
  • 所以函数类似于 Send(Code, Addr, Data) 数据值是有问题的二进制,Addr 是连接在树莓派上的板上 Microchip 的十六进制位置,然后,此信息被发送到函数 SendValue(),在该函数中切换 clk,然后发送信息并将其切换回来。数据可以是二进制或十六进制。如果您需要更多信息,请询问。
  • @JamesClarke 请尝试使用转换后的 int 值,让我们看看会发生什么。如果有错误是什么?
猜你喜欢
  • 2017-08-08
  • 2015-01-20
  • 2013-01-30
  • 1970-01-01
  • 2012-02-14
  • 2014-11-28
  • 2015-12-16
  • 2016-05-07
相关资源
最近更新 更多