有没有办法将 1 和 0 的字符串转换为其二进制对应物,即不是 ASCII

Is there a way of converting a string of 1's and 0's to its binary counterpart, i.e. not ASCII

在 Python 中,我了解到创建像 0b01101101 这样的整数将创建一个二进制文字。

假设我有一个 "01101101" 的字符串数据类型,有没有办法将其转换为二进制文字?

示例用法是我将创建一个数据包,慢慢地用相关数据来构建字节(根据变量设置位)。获得字符串后,我需要通过串行连接编写原始二进制文件。

是否可以将字符串 "01101101" 转换为 0b01101101 因此它是二进制文字。

我的目标的另一个例子,如果有帮助的话。这样我就可以动态地动态创建二进制数据,而无需进行大量的按位运算,我认为在整理数据然后将其转换为二进制文字时,只需组成一个 1 和 0 的字符串就更简单了。当然,如果有更好的方法去做,我们会很乐意接受改进。

您可以使用参数 base 从字符串到整数的转换:

int('01101101', base=2)
# output : 109
# (and 109 in base 10 = 01101101 in base 2)

并反向操作,使用bin()创建以0b开头的字符串:

bin(109)
# output : '0b01101101'

术语注意事项:二进制文字是一段文本,通常出现在源代码中,因此我在字符串对象中展示了产生相同文本的代码。二进制文字 不是数字 ,但它计算为 Python 代码中的数字,因此我还展示了计算该数字的代码。 0b01101101109 是不同的文字(一个二进制,一个十进制),但在计算时它们给出完全相同的结果,一个等于一百零九的整数。

如果你想通过串行连接将整数 109 作为单个字节写入,那么你要写入的是代码为 109 的单个字符,不是二进制文字.

my_string = "01101101"

my_binary_literal = "0b" + my_string
my_string_converted_to_integer = int(my_string, 2)
my_single_character = chr(my_string_converted_to_integer)
assert my_single_character == 'm'

有: 首先将其转换为 int 并从那里转换为二进制文字,就像这样 bin(int("01101101", base=2))