Je suis (un peu) familier avec son complément mais je pourrais utiliser un rappel concernant Python 2.7. Pourquoi le ~0b1
affiche-t-il -2
? Je comprends que le complément à un convertit 1s en 0 et vice versa. Je m'attendais à ~0b1
pour imprimer 0b0
ou 0
.Pourquoi ~ 0b1 imprime -2 en Python 2.7?
Est-ce que print
convertit automatiquement les littéraux d'octets en int
?
Toute aide est appréciée.
Ce n'est pas un * octet littéral *. C'est un autre type de littéral 'int' qui vous permet d'exprimer votre' int' en binaire *. Donc il n'y a pas de conversion car * c'était toujours un 'int' *. –
@ juanpa.arrivillaga Merci pour le commentaire. Cela explique un peu. – MSD
Donc, en d'autres termes, '0b10000',' 0x10', et '16' sont tous des littéraux pour le même objet' int'. par défaut, lorsqu'un int est imprimé sur un écran, sa représentation décimale est imprimée. –