Skip to the content.

Binary HW

HW


def binary_add(a, b):
    return bin(int(a, 2) + int(b, 2))[2:]

def binary_subtract(a, b):
    return bin(int(a, 2) - int(b, 2))[2:]

def binary_multiply(a, b):
    return bin(int(a, 2) * int(b, 2))[2:]

def binary_divide(a, b):
    if int(b, 2) == 0:
        return "Error: Division by zero"
    return bin(int(a, 2) // int(b, 2))[2:]

def binary_to_decimal(b):
    return int(b, 2)

def decimal_to_binary(d):
    try:
        d = int(d)
        return bin(d)[2:]
    except ValueError:
        return "Error: Not a valid decimal number"

def print_result(operation, input1, input2, result):
    print("\n--- Result ---")
    print(f"Operation: {operation}")
    print(f"Input 1: {input1}")
    if input2 is not None:
        print(f"Input 2: {input2}")
    print(f"Output: {result}")
    print("---------------\n")

def calculator():
    print("🧮 Welcome to the Binary Calculator!")
    print("You can perform the following operations:")
    print("1 - Add two binary numbers")
    print("2 - Subtract one binary number from another")
    print("3 - Multiply two binary numbers")
    print("4 - Divide one binary number by another")
    print("5 - Convert a binary number to decimal")
    print("6 - Convert a decimal number to binary (Extra Credit!)")

    choice = input("Enter choice (1-6): ")

    if choice in {'1', '2', '3', '4'}:
        a = input("Enter first binary number (e.g., 1010): ")
        b = input("Enter second binary number (e.g., 0101): ")

        if not all(c in '01' for c in a + b):
            print("Invalid binary input. Please use only 0 and 1.")
            return

        if choice == '1':
            result = binary_add(a, b)
            print_result("Addition", a, b, result)
        elif choice == '2':
            result = binary_subtract(a, b)
            print_result("Subtraction", a, b, result)
        elif choice == '3':
            result = binary_multiply(a, b)
            print_result("Multiplication", a, b, result)
        elif choice == '4':
            result = binary_divide(a, b)
            print_result("Division", a, b, result)

    elif choice == '5':
        b = input("Enter binary number (e.g., 1101): ")
        if not all(c in '01' for c in b):
            print("Invalid binary input.")
        else:
            result = binary_to_decimal(b)
            print_result("Binary to Decimal", b, None, result)

    elif choice == '6':
        d = input("Enter decimal number (e.g., 15): ")
        result = decimal_to_binary(d)
        print_result("Decimal to Binary", d, None, result)

    else:
        print("Invalid choice. Please enter a number between 1 and 6.")

# Run the calculator
calculator()

🧮 Welcome to the Binary Calculator!
You can perform the following operations:
1 - Add two binary numbers
2 - Subtract one binary number from another
3 - Multiply two binary numbers
4 - Divide one binary number by another
5 - Convert a binary number to decimal
6 - Convert a decimal number to binary (Extra Credit!)



--- Result ---
Operation: Multiplication
Input 1: 1010
Input 2: 0111
Output: 1000110
---------------