¿Cómo puedo agregar, restar y comparar números binarios en Python sin convertir a decimal?Números binarios en Python
Respuesta
Puede convertir entre una cadena que representa el binario usando bin() e int()
>>> bin(88)
'0b1011000'
>>> int('0b1011000', 2)
88
>>>
>>> a=int('01100000', 2)
>>> b=int('00100110', 2)
>>> bin(a & b)
'0b100000'
>>> bin(a | b)
'0b1100110'
>>> bin(a^b)
'0b1000110'
Gracias. Sí, esta es una tarea de tarea. La asignación indica que se supone que debo dejar los números en 'formato binario' cuando realizo ._add, ._sub, ._gt, ._lt, y ._eq. Su ejemplo anterior parece convertir de bin a int. No estoy seguro de si esto será aceptable, pero no veo otra forma de hacerlo, excepto su ejemplo. –
También puede usar el literal binario cuando usa Python 2.6 y superior. En lugar de 'int ('01100111', 2)' escribes '0b01100111' por ejemplo, que es' 103'. – Joschua
Binario, decimal, hexadecimal ... la base solo importa al leer o sacar números, agregar números binarios es exactamente lo mismo que agregar un número decimal: es solo una cuestión de representación.
Creo que está confundido acerca de qué es el binario. Binario y decimal son solo representaciones diferentes de un número, p. 101 base 2 y 5 base 10 son el mismo número. Las operaciones agregan, restan y comparan operar en números: 101 base 2 == 5 base 10 y además es la misma operación lógica sin importar en qué base esté trabajando. El hecho de que su intérprete python pueda almacenar cosas como binario internamente no lo hace No afecta cómo trabajas con él. Si tienes un tipo entero, solo usa +, -, etc.
Si tienes cadenas de dígitos binarios, tendrás que escribir tu propia implementación o convertirlas usando la función int (binaryString, 2).
Si estás hablando de operadores bit a bit, entonces lo que busca es:
~ Not
^ XOR
| Or
& And
De lo contrario, los números binarios funcionan exactamente igual que los números decimales, porque los números son números, no importa cómo se mire ellas . La única diferencia entre decimal y binario es cómo representamos esos datos cuando lo estamos viendo.
Siempre es divertido escribir add, sub etc con operadores bit a bit. Para cualquier persona interesada en esto, busque guías en circuitos, más específicamente medios sumadores, luego sumadores completos y, finalmente, restador, tal vez incluso un substractor sumador. Desde aquí puede traducirlo en operadores bit a bit. –
creo que usted está confundido acerca de lo que es binaria. Binario y decimal son solo representaciones diferentes de un número, p. 101 base 2 y 5 base 10 son el mismo número. Las operaciones agregan, restan y comparan operar en números: 101 base 2 == 5 base 10 y además es la misma operación lógica sin importar en qué base esté trabajando.
No estoy seguro si es útil, pero dejo mi solución aquí:
class Solution:
# @param A : string
# @param B : string
# @return a strings
def addBinary(self, A, B):
num1 = bin(int(A, 2))
num2 = bin(int(B, 2))
bin_str = bin(int(num1, 2)+int(num2, 2))
b_index = bin_str.index('b')
return bin_str[b_index+1:]
s = Solution()
print(s.addBinary("11", "100"))
a continuación se muestra una re-escritura de una función previamente publicado:
def addBinary(a, b): # Example: a = '11' + b =' 100' returns as '111'.
for ch in a: assert ch in {'0','1'}, 'bad digit: ' + ch
for ch in b: assert ch in {'0','1'}, 'bad digit: ' + ch
sumx = int(a, 2) + int(b, 2)
return bin(sumx)[2:]
- 1. Python 2.5 Windows Binarios?
- 2. Imprimir números en python
- 3. Números pares en Python
- 4. Generando números binarios de n dígitos en clojure
- 5. ¿Cómo puedo convertir números hexadecimales a binarios en C++?
- 6. conversión rápida de datos binarios en Python
- 7. ¿Sujeta números flotantes en Python?
- 8. ¿Cómo se relacionan los números "binarios" con mi programación diaria?
- 9. Mostrar números como binarios de una fuente vinculada
- 10. Analizando binarios MIPS: ¿hay una biblioteca Python para analizar datos binarios?
- 11. Python __repr__ para números?
- 12. Python: Búsqueda/lectura de datos binarios
- 13. ¿Cómo escribir datos binarios en stdout en python 3?
- 14. ¿Cómo puedo generar números aleatorios en Python?
- 15. Generar una secuencia de números en Python
- 16. Uso de números complejos en python
- 17. Tukey resumen de cinco números en Python
- 18. trabajando con números negativos en python
- 19. Semillas() y números aleatorios en Python
- 20. formateando números largos como cadenas en python
- 21. Python encontrar los números no en conjunto
- 22. Tratar con números UTF-8 en Python
- 23. ¿Cómo escribo datos binarios sin procesar en Python?
- 24. Escribir datos binarios en un socket (o archivo) con Python
- 25. ¿Por qué Perl no compila en archivos binarios como python?
- 26. ¿Cómo puedo descomprimir datos formateados hexadecimales binarios en Python?
- 27. Cómo escribir literales binarios en Scala?
- 28. lectura C archivos binarios
- 29. Datos binarios en MySQL
- 30. juego binarios en Erlang
es esta una pregunta tarea, es decir, qué preguntas cómo hacer las matemáticas en un nivel bajo? Consulte (http://stackoverflow.com/questions/1149929/how-to-add-two-numbers-without-using-or-or-another-arithmetic-operator/1150996#1150996) –
¿Puede dar algunos ejemplos de qué estás tratando de lograr? –
los números ya son binarios en python. Se convierten a formato binario cuando se inicia el programa y solo se convierten de nuevo a decimal cuando se usa algo como str() o imprime –