给定一个数组和零,将等效二进制值转换为整数。
例如:[0,0,0,1]被视为0001,它是1的二进制表示。
例子:
Testing: [0, 0, 0, 1] ==> 1
Testing: [0, 0, 1, 0] ==> 2
Testing: [0, 1, 0, 1] ==> 5
Testing: [1, 0, 0, 1] ==> 9
Testing: [0, 0, 1, 0] ==> 2
Testing: [0, 1, 1, 0] ==> 6
Testing: [1, 1, 1, 1] ==> 15
Testing: [1, 0, 1, 1] ==> 11
但是,阵列可以具有不同的长度,而不仅限于4
第一种
def binary_array_to_number(arr):
a =""
for i in arr:
b = str(i)
a += b #字符串相加
return int(a,2) #对字符进行二进制转十进制
print(binary_array_to_number([0,1,0,1])) #举例
#(输出)5
第二种
def binary_array_to_number(arr):
return int("".join(map(str, arr)), 2)
#利用map函数,直接对arr 列表中的每个元素进行str()处理,然后join添加到""里面
#最后进行二进制转化为十进制
print(binary_array_to_number([0,1,0,1])) #举例
#(输出)5