Skip to the content.

Binary Search Homework Hacks

My answers for the Homework hacks

import random
import time

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

def binary_subtraction(a, b):
    if int(a, 2) < int(b, 2):
        return "Error"
    return bin(int(a, 2) - int(b, 2))[2:]

def decimal_to_binary(n):
    return bin(n)[2:]

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

def binary_battle_royale():
    print("๐Ÿ‘พ Welcome to Binary Battle Royale! ๐Ÿ‘พ")
    score = 0
    total_rounds = 3

    for round_num in range(1, total_rounds + 1):
        print(f"\nโšก Round {round_num} โšก")
        mode = random.choice(["addition", "subtraction", "dec_to_bin", "bin_to_dec"])

        if mode == "addition":
            num1 = bin(random.randint(0, 15))[2:]
            num2 = bin(random.randint(0, 15))[2:]
            print(f"Add these two binary numbers: {num1} + {num2}")
            user_answer = input("Your answer (binary): ").strip()
            correct_answer = binary_addition(num1, num2)
            if user_answer == correct_answer:
                print("โœ… Correct!")
                score += 1
            else:
                print(f"โŒ Incorrect. The correct answer was {correct_answer}.")

        elif mode == "subtraction":
            num1_val = random.randint(8, 31)
            num2_val = random.randint(0, num1_val)
            num1 = bin(num1_val)[2:]
            num2 = bin(num2_val)[2:]
            print(f"Subtract these two binary numbers: {num1} - {num2}")
            user_answer = input("Your answer (binary): ").strip()
            correct_answer = binary_subtraction(num1, num2)
            if user_answer == correct_answer:
                print("โœ… Correct!")
                score += 1
            else:
                print(f"โŒ Incorrect. The correct answer was {correct_answer}.")

        elif mode == "dec_to_bin":
            decimal_number = random.randint(0, 31)
            print(f"Convert this decimal number to binary: {decimal_number}")
            user_answer = input("Your answer (binary): ").strip()
            correct_answer = decimal_to_binary(decimal_number)
            if user_answer == correct_answer:
                print("โœ… Correct!")
                score += 1
            else:
                print(f"โŒ Incorrect. The correct answer was {correct_answer}.")

        elif mode == "bin_to_dec":
            binary_number = bin(random.randint(0, 31))[2:]
            print(f"Convert this binary number to decimal: {binary_number}")
            user_answer = input("Your answer (decimal): ").strip()
            correct_answer = str(binary_to_decimal(binary_number))
            if user_answer == correct_answer:
                print("โœ… Correct!")
                score += 1
            else:
                print(f"โŒ Incorrect. The correct answer was {correct_answer}.")

    print("\n๐Ÿ† Game Over! ๐Ÿ†")
    print(f"Your final score: {score}/{total_rounds}")
    if score == total_rounds:
        print("๐ŸŒŸ Amazing job! You're a Binary Master!")
    elif score >= total_rounds // 2:
        print("๐Ÿ‘ Good effort! Keep practicing!")
    else:
        print("๐Ÿ’ก Don't worry โ€” review the rules and try again!")

# --- Start the game ---
binary_battle_royale()

How to Convert Binary to Decimal

Start from the right.
Multiply each digit by 2 raised to its position number (starting at 0), then add them all together.


Example: What is 11111111 in Decimal?

  • 1 ร— 2โท = 128
  • 1 ร— 2โถ = 64
  • 1 ร— 2โต = 32
  • 1 ร— 2โด = 16
  • 1 ร— 2ยณ = 8
  • 1 ร— 2ยฒ = 4
  • 1 ร— 2ยน = 2
  • 1 ร— 2โฐ = 1

Add them up:

128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

11111111 in binary = 255 in decimal.