Dados dos números binarios, escriba un programa en Python para calcular su suma.
Ejemplos:
Input: a = "11", b = "1" Output: "100" Input: a = "1101", b = "100" Output: 10001
Acercarse:
- Enfoque ingenuo: la idea es comenzar con los últimos caracteres de dos strings y calcular la suma de dígitos uno por uno. Si la suma se vuelve más de 1, entonces almacene el acarreo para los siguientes dígitos.
- Usando la función incorporada: Calcule el resultado usando las funciones bin() e int() incorporadas.
Método 1: enfoque ingenuo:
La idea es comenzar con los últimos caracteres de dos strings y calcular la suma de dígitos uno por uno. Si la suma se vuelve más de 1, entonces almacene el acarreo para los siguientes dígitos.
Python3
# Python program to add two binary numbers. # Driver code # Declaring the variables a = "1101" b = "100" max_len = max(len(a), len(b)) a = a.zfill(max_len) b = b.zfill(max_len) # Initialize the result result = '' # Initialize the carry carry = 0 # Traverse the string for i in range(max_len - 1, -1, -1): r = carry r += 1 if a[i] == '1' else 0 r += 1 if b[i] == '1' else 0 result = ('1' if r % 2 == 1 else '0') + result # Compute the carry. carry = 0 if r < 2 else 1 if carry != 0: result = '1' + result print(result.zfill(max_len))
10001
Producción:
10001
Método 2: Usando funciones incorporadas:
Primero convertiremos la string binaria a decimal usando la función int() en python. La función int() en Python y Python3 convierte un número en la base dada a decimal. Luego lo agregaremos y luego lo convertiremos nuevamente en un número binario usando la función bin() .
Ejemplo 1:
Python3
# Python program to add two binary numbers. # Driver code # Declaring the variables a = "1101" b = "100" # Calculating binary value using function sum = bin(int(a, 2) + int(b, 2)) # Printing result print(sum[2:])
10001
Ejemplo 2:
Python3
# Python program to add two binary numbers. # Driver code if __name__ == "__main__" : # Declaring the variables a = "1101" b = "100" # Calculating binary sum by using bin() and int() binary_sum = lambda a,b : bin(int(a, 2) + int(b, 2)) # calling binary_sum lambda function print(binary_sum(a,b)[2:]) # This code is contributed by AnkThon
10001
Publicación traducida automáticamente
Artículo escrito por aditya_taparia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA