Comment utiliser l'opérateur de négation en python

WBOY
Libérer: 2023-04-30 08:22:14
avant
3231 Les gens l'ont consulté

    Opérateur de négation Python

    ~ : 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

    1. La base de calcul est

    • ①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

    • stockés
    • ⑥ 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 Exemple

    ~ (-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 ~

    En python, l'utilisation du symbole d'inversion ~ n'obtient pas les résultats que nous imaginions, c'est (la valeur inversée) = - ( Le. valeur avant inversion) -1

    Analysons-le

    Par exemple, si 1 est inversé, la représentation binaire 8 bits de 1 est : 0000 0001, et le résultat après inversion est : 1111 1110. Pour les ordinateurs, binaire Le nombre commencer par 1 représente un nombre négatif, alors que représente exactement 1111 1110 ? Si vous voulez connaître cette valeur, vous pouvez trouver son complément, c'est-à-dire prendre d'abord le complément : 0000 0001, puis ajouter 1 : 0000 0010, indiquant 1111. Le code original de 1110 est 0000 0010, qui est le nombre positif 2, donc 1111 1110 représente le nombre négatif -2

    Prenons un autre exemple

    pour inverser -2, la représentation binaire de -2 est le complément de 2, qui est 0000 0010 > 1111 1101 > 1111 1110 , la représentation binaire de -2 est 1111 1110, inversez-la pour obtenir 0000 0001, évidemment, la valeur inversée est 1, donc ~ (-2) = 1, ~1= -2

    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!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal