String 什么';翻转位字符串中单个位的最佳方式是什么?
比如说,你有一个8个字符的字符串,代表一个8位字节;i、 eString 什么';翻转位字符串中单个位的最佳方式是什么?,string,python-3.x,bit-manipulation,bits,bitstring,String,Python 3.x,Bit Manipulation,Bits,Bitstring,比如说,你有一个8个字符的字符串,代表一个8位字节;i、 e'00000000'(0)并且您希望翻转一个位,使其成为'00010000'(16)。最好或最优雅的方法是什么?当谈到位操作时,在第n个位置翻转单个位的经典方法是 x ^= 1 << n x^=1使用int而不是str?如果必须使用str,那么转换为int并返回最简单,因为使用文本0和1的逻辑没有使用实际位那么简单。使用蝴蝶翅膀。这里并没有任何令人满意的方法,因为字符串是不可变的。最好使用一个提供新类型的库,例如or(如果
'00000000'
(0)并且您希望翻转一个位,使其成为'00010000'
(16)。最好或最优雅的方法是什么?当谈到位操作时,在第n个位置翻转单个位的经典方法是
x ^= 1 << n
x^=1使用int
而不是str
?如果必须使用str
,那么转换为int
并返回最简单,因为使用文本0
和1
的逻辑没有使用实际位那么简单。使用蝴蝶翅膀。这里并没有任何令人满意的方法,因为字符串是不可变的。最好使用一个提供新类型的库,例如or(如果您想要更高层次的便利),或者只使用整数(如果您想要更快)。“Bitstring”并不是指“字面上的字符串”,因为它包含单词字符串。这是一种更高层次的讨论方式,无论您选择如何实现它们。一个实际的字符串可以作为实现,但它不太擅长这项工作。