【发布时间】:2018-08-25 04:58:16
【问题描述】:
我必须使用二进制格式的数字,我想知道是否有一种简单易用的内置方式来使用它们。我知道bytearray,但它适用于字节类型,而且绝对不直观(至少对我而言)。
那么,有什么方法可以轻松处理二进制数(将它们分配给变量、执行位运算、转换为 ASCII 等)?如果不是内置的,至少是一个不错且易于理解的模块。
以防我问的不够清楚,这里有一个例子,我认为处理二进制文件的好方法是:
bin_num1 = Binary('100')
bin_num2 = Binary(0)
print(bin_num1.and(bin_num2)) # Prints 000
我使用的是 Python 3.6,但任何版本的任何解决方案都可以胜任。
编辑 1:
正如 cmets 中所指出的,0bXXX 可以从二进制文件中获取 type int,就像 bin() 会做相反的事情一样。尽管如此,这仍适用于整数,返回的结果将是一个整数,并且字符转换(例如bin('a'))将是一个错误并且需要进一步的转换(从 str 到 int,然后再到二进制)。
【问题讨论】:
-
像这样:
0b0 & 0b100? -
是的,你们都说得对。实际上,答案可能是两者的结合。 “
0b0 & 0b100”之类的操作将返回一个 int 类型,可以使用bin( )将其转换为二进制。我将等待,看看是否有人提出了一个可以完成工作并返回二进制类型的答案。
标签: python python-3.x binary