Estimated read time: 2 minutes
There is nothing new here in terms of algorithms, but it was interesting to figure out how to apply those concepts with Python. This works for integer numbers, but can be easily adapted to convert fractions.
Binary to Decimal
""" Converts a binary number to a decimal number. """ def bin_to_dec(number): """Algorithm that converts a binary number to a decimal number. Receives and returns a string.""" # get the index of power of first digit # e.g. 1001 → first index power is 3 (2^3) first_power = len(number) - 1 total = 0 # initialize variable to store final result # iterate over each number and if it is '1', calculate the value # based on its position and add it to the total for index, char in enumerate(number): if char == '1': total += 2 ** (first_power - index) # give back the answer to the script return total if __name__ == '__main__': # retrieve binary number from input as string to parse BIN_NUM = input() # pass binary number to algorithm and store the result RESULT = bin_to_dec(BIN_NUM) # print the solution to the console print(RESULT)
Decimal to Binary
""" Converts a decimal number to a binary number. """ def dec_to_bin(number): """Algorithm that converts a decimal number to a binary number. Receives an integer and returns a string.""" if number == 0: # if number is 'zero', the answer is 'zero' return 0 remainders =  # list that stores the remainders # iterate over the initial given decimal and divide it by two # until it gets to 'zero'. At each step, add the remainder in # the above list while number > 0: remainders.append(number % 2) number = number // 2 # reverse the list of remainders, as the first remainder is the # right most digit in the answer remainders.reverse() # concatenate all the digits from the list of remainders from left # to right to display the final binary number answer = '' for digit in remainders: answer += str(digit) # give the answer back to the script return answer if __name__ == '__main__': # retrieve decimal number from input as integer DEC_NUM = int(input()) # pass decimal number to algorithm and store the result RESULT = dec_to_bin(DEC_NUM) # print the solution to the console print(RESULT)
This was a very quick programming session that’s been useful to make new concepts stick. The best learning strategies are to test yourself constantly in any way possible and to teach clearly what you know, which is what I tried to do in the end. By the way, I found the course Learning How to Learn on Coursera to be quite satisfying and I would invite you to have a look if that’s a topic you’re interested in!