Skip to the content.

Binary Base

None

Tri 3 Team Teach Hacks

Popcorn Hacks

Popcorn Hack 1

def binary_to_decimal(binary_str):
    decimal = 0
    for i in range(len(binary_str)):
        decimal += int(binary_str[-(i + 1)]) * (2 ** i)
    return decimal

# Get user input
binary_input = input("Enter a binary number: ")
decimal_output = binary_to_decimal(binary_input)
print("The decimal representation of", binary_input, "is", decimal_output)

The decimal representation of 1010101010 is 682.

Popcorn Hack 2

import random
import time

def binary_addition_battle():
    # Generate two random binary numbers (up to 8 bits)
    num1 = bin(random.randint(0, 255))[2:]
    num2 = bin(random.randint(0, 255))[2:]
    
    # Show the binary numbers
    print(f"Add the following binary numbers:")
    print(f"Number 1: {num1}")
    print(f"Number 2: {num2}")
    
    # Start the timer
    start_time = time.time()
    
    # Ask the user for the sum
    user_answer = input("Your answer (in binary): ")
    
    # End the timer
    end_time = time.time()
    
    # Calculate the correct binary sum
    correct_answer = bin(int(num1, 2) + int(num2, 2))[2:]
    
    # Check if the answer is correct
    if user_answer == correct_answer:
        print(f"Correct! You took {end_time - start_time:.2f} seconds.")
        print(f"Your score: +10 points!")
    else:
        print(f"Oops! The correct answer was {correct_answer}.")
        print(f"Your score: -5 points.")

# Run the game
binary_addition_battle()
Add the following binary numbers:
Number 1: 10000
Number 2: 10000010
Correct! You took 41.45 seconds.
Your score: +10 points!

Popcorn Hack 3

import random

def binary_subtraction(bin1, bin2):
    max_len = max(len(bin1), len(bin2))
    bin1 = bin1.zfill(max_len)
    bin2 = bin2.zfill(max_len)

    result = ''
    borrow = 0

    for i in range(max_len-1, -1, -1):
        bit1 = int(bin1[i])
        bit2 = int(bin2[i])

        sub = bit1 - bit2 - borrow

        if sub == 0 or sub == 1:
            result = str(sub) + result
            borrow = 0
        elif sub == -1:
            result = '1' + result
            borrow = 1
        elif sub == -2:
            result = '0' + result
            borrow = 1

    result = result.lstrip('0') or '0'
    return result

print("🧠 Binary Subtraction Challenge! 🧠")
score = 0
total_questions = 3

for question_num in range(1, total_questions + 1):
    num1 = random.randint(8, 63)
    num2 = random.randint(0, num1)

    bin1 = bin(num1)[2:]
    bin2 = bin(num2)[2:]

    print(f"\nProblem {question_num}: {bin1} - {bin2}")
    user_answer = input("Your answer: ").strip()

    correct_answer = binary_subtraction(bin1, bin2)

    if user_answer == correct_answer:
        print("✅ Correct!")
        score += 1
    else:
        print(f"❌ Incorrect. The correct answer was {correct_answer}.")

print(f"\n🎯 You got {score}/{total_questions} correct!")
print("Thanks for practicing!")

🧠 Binary Subtraction Challenge! 🧠

Problem 1: 11111 - 1001
✅ Correct!

Problem 2: 11111 - 1
✅ Correct!

Problem 3: 110100 - 10110
✅ Correct!

🎯 You got 3/3 correct!
Thanks for practicing!

Homework Hack

  1. To change binary to decimal, add the values of the 1s by counting powers of 2 from right to left.

  2. The binary number 11111111 equals 255 in decimal.