Bis: Que fait ce programme ?

Liste des GroupesRevenir à fcl python 
Sujet : Bis: Que fait ce programme ?
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.sci.maths fr.comp.lang.python
Date : 01. Oct 2022, 15:40:49
Autres entêtes
Organisation : There's no cabale
Message-ID : <th9g13$o57$1@cabale.usenet-fr.net>
References : 1
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.1
Le 30/09/2022 à 07:17, ast a écrit :
Devinette: Que retourne cette petite fonction python
 
(m et n sont 2 entiers naturels)
 
 
def f(m, n):
   while n:
     m, n = m ^ n, (m & n) << 1
   return m

Même question, en ajoutant un simple ~ à la troisième ligne :

def f(m, n):
   while n:
     m, n = m ^ n, (~m & n) << 1
   return m

pour ceux qui ne connaissent pas python
 
"while n" c'est "pendant que n est non nul"
 
^ est l'opérateur "ou exclusif" bit à bit
& est le "et" bit à bit
<< 1 décalage à gauche bit à bit et ajout d'un 0 à droite
 
a, b = c, d  affectation simultanée a <- c et b <- d

Toujours pour ceux qui ne connaissent pas python :

~ est l'opérateur « inverser tous les bits » (les 1 deviennent des 0
  et les 0 deviennent des 1)

En particulier, si m est un nombre entier, -m est égal à (~m + 1)


--
Olivier Miakinen

Date Sujet#  Auteur
30 Sep 22 * Que fait ce programme ?8ast
30 Sep 22 +* Re: Que fait ce programme ?4Olivier Miakinen
30 Sep 22 i+- Re: Que fait ce programme ?1Olivier Miakinen
30 Sep 22 i`* Re: Que fait ce programme ?2Olivier Miakinen
2 Oct 22 i `- Re: Que fait ce programme ?1ast
30 Sep 22 +- Re: Que fait ce programme ?1Michel Talon
30 Sep 22 +- Problème de l'arrêt (was: Que fait ce programme ?)1Olivier Miakinen
1 Oct 22 `- Bis: Que fait ce programme ?1Olivier Miakinen

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal