~ : Opérateur de négation au niveau du bit : annulez chaque bit binaire des données, c'est-à-dire changez 1 en 0 et 0 en 1.
~x est similaire à -x-1
①Le code original, le complément et le complément des nombres positifs sont les mêmes
②Le bit de signe des nombres négatifs reste inchangé, inverser les bits restants et ajoutez 1
③Code original pour trouver le complément : Inverser,+1
④Complément pour trouver le code original : Inverser,+1
⑤Les nombres négatifs sont dans le complément Les
⑥ L'opération d'inversion est effectuée sur le code original
⑦ bit de signe, 1 représente un nombre négatif, 0 représente un nombre positif
~ (-2)
Tout d'abord vous. Pour connaître la forme binaire de -2 dans l'ordinateur, on peut connaître à partir de ⑤ et ② :
-2 Code original : 1000 0000 0000 0010
-2 Code négatif : 1111 1111 1111 1101 #Le bit de signe reste inchangé, tout le monde Négation
-2 complément : 1111 1111 1111 1110 #Code complément = code complément + 1
1111 1111 1111 1110 est le prototype de -2 dans l'ordinateur
Maintenant, commencez à le nier, bit de signe Inchangé,
est inversé au niveau du bit : 0000 0000 0000 0001
est évidemment un nombre positif, et son code d'origine est lui-même, donc la sortie est 1.
~2
2 code original, code inversé, Code complémentaire : 0000 0000 0000 0010
Négation au niveau du bit : 1111 1111 1111 1101
Que dois-je faire s'il s'agit d'un nombre négatif ? Puis-je demander directement ?
Évidemment, cela n'est pas possible, ⑥ a dit : le résultat du calcul de l'opération d'inversion est effectué sur le code d'origine, ⑤ a également dit : les nombres négatifs sont stockés dans le code complément
1111 1111 1111 1101 est le code complément de 0000 0000 0000 0010 , mais ce que nous voulons c'est le résultat, pas le prototype dans l'ordinateur,
juste ce qu'il faut, ④ complément pour trouver le code original : nier, +1
nier : 1000 0000 0000 0010
plus 1 : 1000 0000 0000 0011
Donc, nous avons le code original et pouvons calculer le résultat
1000 0000 0000 0011 = -3
En bref, l'inversion est très simple, mais il faut faire attention à savoir si l'inversion est la code original. , le résultat peut-il être calculé directement ? Problème d'inversion numérique Python ~
Analysons-le
Prenons un autre exemple
Le résumé est : (valeur après négation) = - (valeur avant négation) -1
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!