kate 挑战:一个数组和零,将等效二进制值转换为整数

给定一个数组和零,将等效二进制值转换为整数。
例如:[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

猜你喜欢

转载自blog.csdn.net/weixin_43097301/article/details/83049142