def sumador(a, b):
"""
Suma dos números binarios de 4 bits.
Parámetros:
a (int): Primer número binario (4 bits).
b (int): Segundo número binario (4 bits).
Retorno:
int: Suma de los dos números binarios (4 bits).
"""
carry = 0
resultado = 0
for i in range(4):
suma_bits = a & 1 ^ b & 1 ^ carry
carry = (a & 1 & b & 1) | (a & 1 & carry) | (b & 1 & carry)
resultado |= (suma_bits << i)
a >>= 1
b >>= 1
return resultado
def restador(a, b):
"""
Resta dos números binarios de 4 bits.
Parámetros:
a (int): Primer número binario (4 bits).
b (int): Segundo número binario (4 bits).
Retorno:
int: Diferencia de los dos números binarios (4 bits).
"""
borrow = 0
resultado = 0
for i in range(4):
resta_bits = a & 1 ^ b & 1 ^ borrow
borrow = (a & 1 & ~b & 1) | (~a & 1 & borrow)
resultado |= (resta_bits << i)
a >>= 1
b >>= 1
return resultado
def main():
"""
Función principal para interactuar con el usuario.
"""
while True:
try:
# Pedir al usuario los dos números binarios
a = int(input("Introduzca el primer número binario (4 bits): "), 2)
b = int(input("Introduzca el segundo número binario (4 bits): "), 2)
# Calcular la suma y la resta
suma = sumador(a, b)
resta = restador(a, b)
# Mostrar los resultados
print(f"Suma: {a:04b} + {b:04b} = {suma:04b}")
print(f"Resta: {a:04b} - {b:04b} = {resta:04b}")
except ValueError:
print("Error: Los valores introducidos no son números binarios válidos.")
if __name__ == "__main__":
main()