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
-
To change binary to decimal, add the values of the 1s by counting powers of 2 from right to left.
-
The binary number 11111111 equals 255 in decimal.