Найдено следующее ускорение.
Отправленный метод
def binaryToDec(binary):
decimal, i = 0, 0
while(binary != 0):
dec = binary % 10
decimal = decimal + dec * pow(2, i)
binary = binary//10
i += 1
return decimal
Модифицированный метод (альтернатива использованию pow (2, i))
def binaryToDec_modified(binary):
decimal, i, p = 0, 0, 1 # modification
while(binary != 0):
dec = binary % 10
binary = binary//10
decimal = decimal + dec * p # modification
p <<= 1
i += 1
return decimal
* Время (~ 73% быстрее) *
n = 100010001101001 # (15 digits)
%timeit binaryToDec(n)
100000 loops, best of 3: 15.6 µs per loop
%timeit binaryToDec_modified(n)
100000 loops, best of 3: 9.03 µs per loop