kate 挑戰:一個數組和零,將等效二進位制值轉換為整數
阿新 • • 發佈:2018-12-15
給定一個數組和零,將等效二進位制值轉換為整數。 例如:[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