1. 程式人生 > >kate 挑戰:一個數組和零,將等效二進位制值轉換為整數

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