当前位置: 首页 > 知识库问答 >
问题:

不使用内置的bin函数将整数转换为二进制

皇甫学海
2023-03-14

此函数接收一个整数作为参数,并应返回一个列表,该列表表示与二进制表示的值相同的位列表,其中列表中的第一个元素是最有效(最左边)的位。

我的函数当前输出数字11的'1011',我需要[1,0,1,1]来代替。

例如,

>>> convert_to_binary(11)
[1,0,1,1]

共有3个答案

钱经赋
2023-03-14

我可否提出以下建议:

def tobin(x,s):
    return [(x>>k)&1 for k in range(0,s)]

这可能是最快的方法,我觉得很清楚。当性能很重要时,bin way太慢。

干杯

方飞白
2023-03-14

只是为了好玩——作为递归一行的解决方案:

def tobin(x):
    return tobin(x/2) + [x%2] if x > 1 else [x]
董建茗
2023-03-14
def trans(x):
    if x == 0: return [0]
    bit = []
    while x:
        bit.append(x % 2)
        x >>= 1
    return bit[::-1]
 类似资料:
  • 问题内容: 我的整数范围是,我想将它们转换为length的二进制numpy数组。例如,说。现在为二进制,因此输出应为。 以二进制形式,因此输出应为)。如果是则应该转换。 我试过了,但是没有给出正确长度的数组。例如, 我想要一种适用于代码中所有内容的方法。 问题答案: 您应该能够对此进行矢量化处理,例如 它只是获得适当的位权重,然后按位取和: 有很多方法将其转换为1秒无论它是非零的,等我选择了一个基

  • 问题内容: 为了将整数转换为二进制,我使用了以下代码: 什么时候擦除“ 0b”,我用这个: 我能做些什么,如果我想展现的,而不是? 问题答案: 仅说明格式化字符串的部分: 将变量放入字符串 将变量放在参数位置0 为该变量添加格式设置选项(否则它将代表小数) 将数字格式化为左侧零填充的八位数字 将数字转换为其二进制表示形式 如果您使用的是Python 3.6或更高版本,则还可以使用f字符串:

  • 下面给出了二叉树的实现。 如图中所示,树不是完整的二叉树。如何编写一个函数,将上述二叉树转换为完整的二叉树,只需将字符串数据节点添加到没有子节点的节点,即可生成完整的二叉树。 我将手动在代码中添加节点,以获得如下结果树: 但是,如何编写一个函数,它将采取根节点和返回树,这是完整的二叉树。

  • 问题内容: 我正在尝试将一个数字从一个整数转换为另一个整数,如果以十六进制打印,它将看起来与原始整数相同。 例如: 将20转换为32(即0x20) 将54转换为84(即0x54) 问题答案: 即,将原始数字视为十六进制,然后将其转换为十进制。

  • 本文向大家介绍使用Python内置的模块与函数进行不同进制的数的转换,包括了使用Python内置的模块与函数进行不同进制的数的转换的使用技巧和注意事项,需要的朋友参考一下 binascii 模块: 它包含一个把二进制数值转换成十六进制的函数,同样也可以反过来转。 #binary_value是二进制数值不是字符串,也不是int型的1010 python自带的builtin函数: bin(num)  

  • 据我所知,这不是一个重复的问题。我将在下面列出相关但不同的问题。 下面是我试图运行的代码,将一个int数组转换为二进制,作为一个单一的矢量化操作: ...嗯...我实际上是在一个“整数标量数组”上操作。(并且将更改为类似于没有效果。) 我意识到可以通过循环(Python 2问题)或列表理解来做到这一点(我知道产生字符串),所以...这篇文章更多的是一个问题:为什么我不能作为一个单一的矢量化操作来做