Skip to main content

Decimal to Binary Calculator

Example:

image.png

Code:


def decToBinLongDivision(decimal: int) -> None:
    numtodivide = decimal
    quotient = 0
    remainder = 0
    bitlenght = 0
    strBinary = ""
    
    if decimal == 0:
        strBinary = '0'
    
    print('Division by 2\tQuotient\tRemainder\tBit #')
    while True:
        if numtodivide <= 0:
            break
        quotient = int(numtodivide / 2)
        remainder = numtodivide % 2
        print(f'{str(numtodivide)+"/2":<8}\t{quotient:<8}\t{remainder:<8}\t{bitlenght:<8}')
        numtodivide = quotient
        bitlenght += 1
        strBinary += str(remainder)
    print(f'\n{decimal} (base 10) = {strBinary[::-1]} (base 2) [bitlength = {bitlenght}]\n')\
        
    #notepadReplaceFriendly(decimal)
    
def notepadReplaceFriendly(decimal):   
    numtodivide = decimal
    quotient = 0
    remainder = 0
    bitlenght = 0
    strBinary = ""
    
    if decimal == 0:
        strBinary = '0'
    
    print('copy paste to notepad and replace " " with "\\t"')
    print('Divisionby2 Quotient Remainder Bit #')
    while True:
        if numtodivide <= 0:
            break
        quotient = int(numtodivide / 2)
        remainder = numtodivide % 2
        print(f'{str(numtodivide)+"/2"} {quotient} {remainder} {bitlenght}')
        numtodivide = quotient
        bitlenght += 1
        strBinary += str(remainder)
    print(f'\n{decimal} (base 10) = {strBinary[::-1]} (base 2) [bitlength = {bitlenght}]\n')


def main() -> None:
    """ This program reads in a binary expression as a string and evaluates the result. """
    while True:
        userInput = input("Enter decimal value : ")
        
        # Without any input, break the loop
        if len(userInput) == 0:
            print("End of program.")
            break
        
        print('\n')
        decToBinLongDivision(int(userInput))

if __name__ == "__main__":
    main()