Je suis un peu confus par l'opérateur ~
Le code va ci-dessous :
a = 1
~a #-2
b = 15
~b #-16
Comment fonctionne ~
?
Je pensais que ~a
serait quelque chose comme :
0001 = a
1110 = ~a
Pourquoi pas?
Je suis un peu confus par l'opérateur ~
Le code va ci-dessous :
a = 1
~a #-2
b = 15
~b #-16
Comment fonctionne ~
?
Je pensais que ~a
serait quelque chose comme :
0001 = a
1110 = ~a
Pourquoi pas?
Vous avez tout à fait raison. C'est un artefact de la représentation entière du complément à deux.
En 16 bits, 1 est représenté par 0000 0000 0000 0001
. Inversé, vous obtenez 1111 1111 1111 1110
, ce qui est -2. De même, 15 est 0000 0000 0000 1111
. Inversé, vous obtenez 1111 1111 1111 0000
, soit -16.
En général, ~n = -n - 1
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.