Path: csiph.com!pi2.pasdenom.info!news.izac.org!reader From: Benoit Izac Newsgroups: fr.comp.lang.python Subject: Re: Usage de ~ qui, ce me semble, veut dire not. Date: Sun, 11 Apr 2021 19:43:51 +0200 Message-ID: <87pmz0u36w.fsf@izac.org> References: <87v98t85de.fsf@universite-de-strasbourg.fr.invalid> <87r1jh7x9o.fsf@universite-de-strasbourg.fr.invalid> Reply-To: benoit.izac@free.fr Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: keg.izac.org; logging-data="2224"; mail-complaints-to="usenet@izac.org" Xref: csiph.com fr.comp.lang.python:3473 Bonjour, Le 11/04/2021 à 15:42, Alain Ketterlin a écrit dans le message <87r1jh7x9o.fsf@universite-de-strasbourg.fr.invalid> : >>> Les autres opérations apparentées sont & | ^ (autres opérations binaires >>> bit-à-bit : "and" "or" "xor"), ainsi que << et >> (décalages). Exercice >>> pour le lecteur : pourquoi est-ce que "-1 >> d" vaut -1 quelle que soit >>> la valeur de d ? >> >> Je suppose que le décalage à droite propage le bit de signe, afin que >> "-6 >> 1" vaille 3 tout comme "6 >> 1" vaut 3. Mais existe-t-il un type >> d'entier non signé ? Un truc qui ferait que "unsigned(-1)" vaudrait un >> de moins qu'une grande puissance de 2 ? > > Ton explication est correcte : en Python tous les entiers sont signés, > et tous les décalages "à droite" s'effectuent avec "extension de signe" > (le bit le plus à droite est répliqué). Dans -1 tous les bits sont à 1, > et donc le restent lors du décalage. Ce n'est pas plutôt le bit le plus à gauche qui est répliqué ? -- Benoit Izac