【问题标题】:How to split a binary string?如何拆分二进制字符串?
【发布时间】:2020-04-25 00:22:18
【问题描述】:

我想在 python 中实现一个函数,它可以像这样分割一个 n 二进制字符串: 输入:[00,01,10,11] 输出:[[0, 0], [0, 1], [1, 0], [1, 1]] 对于输入数组中的任意数量的 os 位。

我试过这样:

    split_bin = []
    setnum = []
    for i in range(0, len(num_bin)):
        for k in range(0, n):
            setnum.append(split_bin[i] & 1<<k)

    return setnum

【问题讨论】:

  • 输入数组字符串的元素类型是什么?
  • 二进制形式的整数
  • [b'101', b'111', b'01', b'11', b'0'] 是有效输入吗?
  • 不,所有值的长度必须相同。在这种情况下,输入将是:[b'101', b'111', b'001', b'011, b'000] 但我已经创建了一个函数来进行这种转换。
  • def dec_to_bin(num, n): \n num_bin = bin(num)[2:].zfill(n) \n return num_bin

标签: split bit


【解决方案1】:

你在cmets中提供的功能:

def dec_to_bin(num, n): 
    num_bin = bin(num)[2:].zfill(n) 
    return num_bin

返回一个字符串,不是二进制的,但没关系;我们仍然可以随意拆分。

input = ['00', '01', '10', '11']
output = []

for number in input:
    output.append([bit for bit in number])

print(output)
# [['0', '0'], ['0', '1'], ['1', '0'], ['1', '1']]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 2015-02-22
    • 1970-01-01
    相关资源
    最近更新 更多