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(f"The decimal representation of {binary_input} is {decimal_output}.")
The decimal representation of 1010110 is 86.
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: 10001100
Number 2: 10001001
Correct! You took 47.78 seconds.
Your score: +10 points!
MC Questions
Question 28:
A text-editing application uses binary sequences to represent each of 200 different characters. What is the minimum number of bits needed to assign a unique bit sequence to each of the possible characters?
A) 4 B) 6 C) 7 D) 8
Answer: 8
Question 36:
A computer program performs the operation 2 divided by 3 and represents the result as the value 0.6666666667. Which of the following best explains this result?
A) An overflow error occurred. B) The precision of the result is limited due to the constraints of using a floating-point representation. C) The program attempted to execute the operation with the arguments in reverse order. D) The program attempted to represent a floating-point number as an integer.
Answer: B. the precision of the result is limited due to the constraints of using a floating-point representation.
Question 42:
Internet protocol version 4 (IPv4) represents each IP address as a 32-bit binary number. Internet protocol version 6 (IPv6) represents each IP address as a 128-bit binary number. Which of the following best describes the result of using 128-bit addresses instead of 32-bit addresses?
A) 4 times as many addresses are available. B) 96 times as many addresses are available. C) 2 to the fourth power times as many addresses are available. D) 2 raised to the ninety-sixth power times as many addresses are available.
Answer: D. 2 raised to the ninety-sixth power times as many addresses are available.
Question 44:
A computer program uses 4 bits to represent nonnegative integers. Which of the following statements describe a possible result when the program uses this number representation?
I. The operation 4 plus 8 will result in an overflow error. II. The operation 7 plus 10 will result in an overflow error. III. The operation 12 plus 3 will result in an overflow error.
A) I only B) II only C) II and III only D) I, II, and III
Answer: B. II only
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()
πΎ Welcome to Binary Battle Royale! πΎ
β‘ Round 1 β‘
Subtract these two binary numbers: 1010 - 1000
β
Correct!
β‘ Round 2 β‘
Convert this decimal number to binary: 19
β
Correct!
β‘ Round 3 β‘
Convert this binary number to decimal: 11100
β
Correct!
π Game Over! π
Your final score: 3/3
π Amazing job! You're a Binary Master!
Homework hacks:
- Explain in 1-2 sentences how to convert a binary number into a decimal number.
To convert a binary number to a decimal number, multiply each bit by 2 raised to the power of its position (starting from 0 on the right) and add all the results together.
- If you are given the binary number 11111111, what decimal number is that?
The binary number 11111111 equals 255 in decimal.