Python 检查二进制数中1出现的位置

Python 检查二进制数中1出现的位置,python,binary,append,Python,Binary,Append,我有一个二进制数:1010 我需要首先将其附加到0000000001010(大小13) 然后计算“1”出现的位置 我每次都会得到不同的二进制数,所以下一次可能是100000000,这意味着我只需要附加“0000”,然后计算哪个位有1 我不知道如何在python中追加 我有一个基本约定,第0位做一些事情。。。位12表示“xyz”,它是小印度格式,因此在开始处理哪个位是活动的(即有1)之前,我需要使任何二进制数的长度等于12 请帮忙。。它只能在python中完成,因为其余的代码都是python 编程

我有一个二进制数:1010

我需要首先将其附加到0000000001010(大小13) 然后计算“1”出现的位置

我每次都会得到不同的二进制数,所以下一次可能是100000000,这意味着我只需要附加“0000”,然后计算哪个位有1

我不知道如何在python中追加

我有一个基本约定,第0位做一些事情。。。位12表示“xyz”,它是小印度格式,因此在开始处理哪个位是活动的(即有1)之前,我需要使任何二进制数的长度等于12

请帮忙。。它只能在python中完成,因为其余的代码都是python


编程新手。谢谢。

您可以使用以下字符串格式实现填充

yourBinNumber = 1010
paddedString = "%013d" % yourBinNumber
然后找出1的位置,如下所示

paddedString.index("1")
有关Python字符串格式的更多信息,请参见naive case

假设起始数字总是以“1”开头,并且总是创建一个以13位二进制表示的字符串,那么结果总是

 13 - len(initialNumber)
e、 g


假设您希望为二进制字符串中的每个1运行不同的函数,可以执行以下操作:

def fun0():
    print('fun0');

def fun1():
    print('fun1');

... 

def fun12():
    print('fun12');

funs = [fun0, fun1, ... , fun12]

# ass x is binary string
x = '1010'

# convert to integer
xi = int(x,2)
for i in range(0,13):
    if(xi & (1 << i) != 0):
        funs[i]()

你的问题可能会被否决,除非你编辑它以添加更多的信息,比如数字如何表示为整数、字符串等。你所说的附加是什么意思?到底还是前面?显示每个项目的预期输出会有所帮助。此外,如果有多个“1”怎么办?二进制数是如何表示的?例如,作为整数、字符串或列表?您可能想看看,它可以让您混合和匹配表示,并对它们执行数字、位掩码和字符串样式的操作。我对您的答案投了赞成票,因为我认为您确实了解了要问的问题。我打赌noobs很难理解它为什么会起作用。很难找到与字符串有关的%运算符的信息和示例。
def fun0():
    print('fun0');

def fun1():
    print('fun1');

... 

def fun12():
    print('fun12');

funs = [fun0, fun1, ... , fun12]

# ass x is binary string
x = '1010'

# convert to integer
xi = int(x,2)
for i in range(0,13):
    if(xi & (1 << i) != 0):
        funs[i]()
fun1
fun3