【问题标题】:Python Decimal to Binary ArrayPython十进制到二进制数组
【发布时间】:2024-05-04 01:40:03
【问题描述】:

我的问题与这个 * 帖子有关:enter link description here,inspectorG4dget 提供了代码

def decToBin(n):
    if n==0: return ''
    else:
        return decToBin(n/2) + str(n%2)

Alex Martelli 观察到的递归是不必要的,因为可以使用明显的 bin(x)[2:]。如果用户需要二进制表示作为字符串,这很好。但是,我需要二进制表示形式为列表或 numpy ndarray。如我所见,我的选择是 a) 改编此代码或 b) 类似 string.split(','.join(bin(10)[2:]),',') 的东西。我知道字符串操作往往很昂贵,但递归也可能很昂贵。

鉴于我需要将整数转换为类似位的数组,哪个选项(a 或 b)可能更有效?还有另一种更简单更好的方法吗?

【问题讨论】:

  • 这也可以:[c for c in bin(10)[2:]] or map(None, bin(10)[2:])

标签: python binary multidimensional-array


【解决方案1】:

您可以通过list()简单地将字符串转换为列表。

list(bin(10)[2:])

【讨论】:

  • 啊,这么简单。虽然我发誓我最初尝试过,但它给了我一个包含 1 个元素 ['1010'] 的列表。现在我很惭愧,即使在这里也有这个问题:-)。