Come posso aggiungere, sottrarre e confrontare i numeri binari in Python senza convertire in decimale?Numeri binari in Python
risposta
È possibile convertire tra una rappresentazione di stringa del binario utilizzando 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'
Grazie. Sì, questo è un compito a casa. L'incarico afferma che dovrei lasciare i numeri in "formato binario" quando eseguo ._add, ._sub, ._gt, ._lt e ._eq. Il tuo esempio sopra sembra convertire da bin a int. Non sono sicuro che ciò sia accettabile, ma non vedo nessun altro modo a parte il tuo esempio. –
È anche possibile utilizzare il valore letterale binario, quando si utilizza Python 2.6 e versioni successive. Invece di 'int ('01100111', 2)' scrivi '0b01100111' per esempio, che è' 103'. – Joschua
Binario, decimale, esadecimale ... la base è importante solo quando si legge o si emettono numeri, l'aggiunta di numeri binari equivale a aggiungere il numero decimale: è solo una questione di rappresentazione.
Penso che tu sia confuso su cosa sia il binario. Binario e decimale sono solo rappresentazioni differenti di un numero, ad es. 101 base 2 e 5 base 10 sono lo stesso numero. Le operazioni addizione, sottrazione e confronto operano sui numeri - 101 base 2 == 5 base 10 e l'aggiunta è la stessa operazione logica indipendentemente da quale base stai lavorando. Il fatto che il tuo interprete python possa archiviare cose come binari internamente non Se hai un numero intero, usa solo +, -, ecc.
Se hai stringhe di cifre binarie, dovrai scrivere la tua implementazione o convertirle usando la funzione int (binaryString, 2).
Se si sta parlando di operatori bit a bit, allora siete dopo:
~ Not
^ XOR
| Or
& And
In caso contrario, i numeri binari funzionano esattamente come numeri decimali, perché i numeri sono numeri, non importa come si guarda a loro . L'unica differenza tra decimale e binario è il modo in cui rappresentiamo quei dati quando li stiamo osservando.
Sempre divertente scrivere add, sub ecc con operatori bit a bit. Per chiunque sia interessato a questo, cerca le guide sui circuiti, più in particolare i mezzi sommatori, poi i sommatori completi e infine il sottrattore, magari anche un sommatore-sommatore. Da qui puoi tradurlo in operatori bit a bit. –
Penso che tu sia confuso su ciò che è binario. Binario e decimale sono solo rappresentazioni differenti di un numero, ad es. 101 base 2 e 5 base 10 sono lo stesso numero. Le operazioni aggiungono, sottraggono e confrontano operano sui numeri - 101 base 2 == 5 base 10 e l'aggiunta è la stessa operazione logica, non importa in quale base stai lavorando.
Non so se utile, ma lascio il mio soluzione qui:
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"))
seguito è una ri-scrittura di una funzione precedentemente pubblicato:
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. Come implementare i numeri binari in Haskell
- 2. funziona con numeri binari in java
- 3. Concatenare numeri binari di lunghezze diverse
- 4. Numeri pari in Python
- 5. Algoritmo di divisione rapida per numeri binari
- 6. Dati binari POST Python
- 7. manipolazione dei dati binari in Python
- 8. Complesso utilizzo numeri in python
- 9. Clamping numeri mobili in Python?
- 10. python che inserisce e recupera dati binari in mysql
- 11. Efficente rimescolamento di bit del vettore di numeri binari
- 12. Generazione di numeri binari di n cifre nel clojure
- 13. Espressione regolare per numeri binari Divisibile per 5
- 14. Scrittura del sistema di numeri binari nel codice C
- 15. Riepilogo cinque numeri Tukey in Python
- 16. Divisione di grandi numeri in Python
- 17. Formattazione di numeri costantemente in Python
- 18. Radice quadrata di numeri complessi in python
- 19. funziona con numeri negativi in python
- 20. Seed() e numeri casuali in Python
- 21. Inversione di elenchi di numeri in python
- 22. Unisci due numeri interi in Python
- 23. Gestione di numeri molto piccoli in python
- 24. Come posso generare numeri casuali in Python?
- 25. Contare i numeri interi in Python
- 26. Python: numeri casuali in un elenco
- 27. Raggruppamento/clustering di numeri in Python
- 28. Convertire i numeri in gradi nell'elenco python
- 29. Come scrivere dati binari in stdout in python 3?
- 30. Python: ricerca/lettura di dati binari
si tratta di una domanda compiti a casa, vale a dire stai chiedendo come fare la matematica a un livello basso? Vedi (http://stackoverflow.com/questions/1149929/how-to-add-two-numbers-without-using-or-or-or-another-arithmetic-operator/1150996#1150996) –
Puoi dare alcuni esempi di cosa stai cercando di raggiungere? I numeri –
sono già binari in python. Vengono convertiti in binario all'avvio del programma e vengono convertiti solo in decimale quando si utilizza qualcosa come str() o in stampa –