Pourquoi « ~2 » donne-t-il « -3 » en Python ?

Patricia Arquette
Libérer: 2024-11-17 17:11:02
original
530 Les gens l'ont consulté

Why Does `~2` Yield `-3` in Python?

Comprendre l'opérateur de complément bit à bit de Python (~)

Pourquoi ~2 donne-t-il -3 en Python ? L'opérateur de complément au niveau du bit (~), souvent désigné par un tilde, joue un rôle crucial dans les opérations au niveau du bit. Pour comprendre son fonctionnement, examinons le concept de représentation en complément à deux.

Les entiers négatifs en Python sont stockés à l'aide du complément à deux, ce qui implique d'inverser la représentation binaire de la contrepartie positive et d'en ajouter un. Par exemple, la représentation binaire de -2 dans le complément à deux est :

1111 1110
Copier après la connexion

Ceci est obtenu en inversant les bits de la représentation binaire de deux (0000 0010) et en ajoutant un. Le bit de début sert de bit de signe, signifiant une valeur négative.

Maintenant, examinons comment l'application de l'opérateur complément à deux conduit à -3 :

two: 0000 0010
~two: 1111 1101
Copier après la connexion

Nous inversons simplement les bits de deux, ce qui donne la représentation inversée. Cependant, cette représentation inversée s'aligne sur la représentation du complément à deux de -3, qui est :

1111 1101
Copier après la connexion

Par conséquent, l'application de l'opérateur complément à deux fournit effectivement la représentation du complément à deux de -3.

Il est important de noter que l'opérateur complément (~) inverse simplement les bits d'un nombre. L'interprétation réelle de ces bits dépend de l'architecture de la machine et du contexte dans lequel ils sont utilisés. Dans le cas d'entiers en Python, la machine interprète les bits inversés selon la représentation en complément à deux pour les nombres négatifs.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal