<分区>
我已经有一个算法可以做到这一点,但代码丑陋且缓慢。我假设库中有一个内置函数或某些函数可以提供更快、更精确的结果。
我想要的是我可以给出最终位数、字符串、列表或双端队列(最后可以转换为字符串的任何东西)。
func(totalBits, binaryInStringOrListForm) -> String or List with leading zeroes
我已经得到的代码如下:
val = deque(["1", "0"])
while len(val) < 8:
val.appendleft("0")
顺便说一下,deque 是集合中的一种对象,它允许您leftappend
,您可以在其中添加一个项目到列表的开头,而不必将所有内容都移动一个。
对此有旧答案,但它们都是 Python 2,并且整个格式设置发生了重大变化。
编辑:我认为这个问题与链接的问题不重复,因为@Martijn Pieters 让我意识到,我实际上是在前导零之后。
编辑:好的,它看起来是那个副本。抱歉被骗了。
我发誓的最后编辑:我刚刚注意到一些事情。当我试图让它长一个字节时,我不断得到像 000b0110 这样的值。这与我想要的 00000110 相反。我只是添加这个,这样如果将来有其他人查找这个问题,他们就会找到正确的东西。所以我所做的就是使用忽略字符串的前两个字符:
val = val[2::].rjust(8, '0')
我得到这个是因为我将一个数字转换为带有“bin”的二进制数,它返回一个开头有“0b”(声明为二进制)的字符串。