Maison  >  Article  >  développement back-end  >  Pourquoi « ~2 » donne-t-il « -3 » en Python ?

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

Patricia Arquette
Patricia Arquetteoriginal
2024-11-17 17:11:02530parcourir

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

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

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

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!

Déclaration:
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