Comment puis-je ajouter, soustraire et comparer des nombres binaires en Python sans les convertir en décimal ?
Réponses
Trop de publicités?Je pense que vous êtes confus sur ce qu'est le binaire. Le binaire et le décimal sont simplement des représentations différentes d'un nombre - par exemple, 101 en base 2 et 5 en base 10 sont le même nombre. Les opérations d'addition, de soustraction et de comparaison opèrent sur des nombres - 101 base 2 == 5 base 10 et l'addition est la même opération logique quelle que soit la base dans laquelle vous travaillez. Le fait que votre interpréteur python puisse stocker les choses en binaire en interne n'affecte pas la façon dont vous travaillez avec ces nombres - si vous avez un type entier, utilisez simplement +, -, etc.
Si vous avez des chaînes de chiffres binaires, vous devrez soit écrire votre propre implémentation, soit les convertir en utilisant la fonction int(binaryString, 2).
Si vous parlez d'opérateurs binaires, alors vous êtes après :
~ Not
^ XOR
| Or
& And
Sinon, les nombres binaires fonctionnent exactement comme les nombres décimaux, car les nombres sont des nombres, quelle que soit la façon dont on les regarde. La seule différence entre les nombres décimaux et binaires est la façon dont nous représentons ces données lorsque nous les regardons.
Vous trouverez ci-dessous une réécriture d'une fonction précédemment publiée :
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:]
- Réponses précédentes
- Plus de réponses