Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3405
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par C.Ret »

@ cgh

Tu as été plus rapide que moi.
cgh a écrit : 27 sept. 2020 11:10

Code : Tout sélectionner

           00   32 1           STO 1                    10  -49     2nd INV Int
           01   00   	         0                      11  -34 1       INV SUM 1
           02   32 0           STO 0                    12   34 0           SUM 0
           03   22             x<>t                     13   34 0           SUM 0
           04   86 0   2nd     Lbl 0                    14   51 0           GTO 0
           05   02               2  
           06  -39 1   2nd inv Prd 1                    15   86 9   2nd     Lbl 9
           07   33 1           RCL 1                    16   33 0           RCL 0
           08   66     2nd     x=t?                     17   81             R/S
           09   51 9           GTO 9
En lisant ton code, j'ai trouvé quelques moyens d'optimiser le mien. Il y de petites différences sur une TI-57lcd concernant surtout le registre de test t et sa remise à zéro C.t.
Mais ton code contient une astuce à laquelle je n'avais pas pensée. Et pour contourner la difficulté, j'utilisais plus de 5 pas supplèmentaires. En répétant le STO+0 aux pas 07 et 08, la fin de mon programme est maintenant plus courte car je n'ai plus besoin de multiplier par deux :D .

Code : Tout sélectionner

 --        St
 76        00          2nd     CM            -26        10          2nd inv x≠t?
 56        01          2nd     C.t            22.00     11                  GTO 0
 23.00     02                  LBL 0          71.00     12                  RCL0
 55        03                    ÷            13        13                  R/S
 02        04                    2
 75        05                    -
 59        06          2nd     Frac
 61.85.00  07                  STO+1
 61.85.00  08                  STO+1
 95        09                    =
Utilisation [ON/C][RST] 1968 [R/S] affiche 6.

Sinon, que vous l'aurez remarqué concernant l'algorithme, j'ai repomper sans aucune vergogne celui donné par Gilles59.

Avec l'astuce de la répétition du STO+0, je peux corriger la version RPN pour HP-41C de ce dernier:

Code : Tout sélectionner

001*LBL "MPO96" 
002   0  STO 00  RDN
005*  LBL 00 
006     2  /  X=0?  GTO 99
010     ENTER↑  FRC  ST+ 00  ST+ 00  -  GTO 00
016*  LBL 99
017     RCL 00
018 END
Bon, ça va, la version HP-41C que j'ai en stock est encore un peu plus courte.

@ Gilles59

Concernant les passages rapides entre RPN et RPL, ou entre les pockets BASIC et keystroke programmables, j'ai moi aussi toujours beaucoup de mal. Après avoir fait quelques heures de RPN sur mon HP-15C ou HP-41C, tu peux être sûr que mon premier code sur mon HP-28S est bancal et qu'il y manque toute une collection de DUP pour les boucles et les tests.

J'arrive encore facilement à passer des RPN/RPL au BASIC très diffèrent. Par contre, pas moyen de refaire le calcul que je viens de tapoter sur une de mes HP directement sur ma TI-57 ldc ou mon fx-602P. Je sais plus calculer en finissant par = !!

Intéressant cette commande IDIV2, comme elle manque à l'arsenal (très limité) de mon HP-28S, je m'empresse d'en construire pour tester ton code :

Code : Tout sélectionner

« MOD LAST / IP SWAP » 'IDIV2' STO 
.
Et là, oh! surprise c'est exactement un bout de mon code pour ce MPO !

Il est peut-être temps que je poste ma version avant que tout le monde la trouve par soi-même.

Quoique j'ai le temps, personne n'a encore songé à utiliser la récursivité :twisted:
En plus je l'ai maintenant en trois versions (normale comme bernouilli92, binary arithmetic comme Gege34 et entiers long comme Gilles59.
Faut que je me décide laquelle je publie...
Modifié en dernier par C.Ret le 05 févr. 2024 19:05, modifié 2 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5229
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par bernouilli92 »

dprtl a écrit : 27 sept. 2020 12:08 Voici ma méthode en Basic Casio (PB-1000, FX-850P, etc.), avec un nombre d'itérations réduit :

Code : Tout sélectionner

10 INPUT N:N$=HEX$(N):N=0
20 FOR I=1 TO 4:C$=MID$(N$,I,1)
30 IF C$="0" THEN 80
40 IF C$="F" THEN N=N+4:GOTO 80
50 IF C$="1" OR C$="4" OR C$="8" THEN N=N+1:GOTO 80
60 IF C$="7" OR C$="B" OR C$="D" OR C$="E" THEN N=N+3:GOTO 80
70 N=N+2
80 NEXT I:PRINT N
L'inconvénient, c'est que l'argument de la fonction embarquée HEX$() est limité à 65535. On pourrait en écrire une autre en assembleur :-)
Il ne manque pas le cas C$="2" dans la ligne 50?
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par dprtl »

bernouilli92 a écrit : 27 sept. 2020 13:36 Il ne manque pas le cas C$="2" dans la ligne 50?
Exact ! Un bug :oops:
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5229
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par bernouilli92 »

C.Ret a écrit : 27 sept. 2020 09:45
Gilles59 a écrit : 26 sept. 2020 21:34(UserRPL)

Code : Tout sélectionner

« BIN R->B ->STR "1" DUP SREPL  »
(newRPL)

Code : Tout sélectionner

« #0b SWAP + ->STR "1" DUP SREPL »
N'ayant pas d'HP-50g sous la main, je n'ai pas pu tester, mais j'ai un doute, je ne vois pas où le comptage des bits est effectuer ? D'ailleurs, je ne vois pas à quoi sert de remplacer les "1" par des "1" ?

Sur mon HP-28S (après avoir écrit un code pour palier à l'absence de la commande SREPL), en essayant 1968 j'obtiens "# 11110110000b" mais pas le nombre des bits à un :(

Il doit y avoir une astuce non documentée qui fait que SREPL compte les occurrences des "1" ? Je n'en ai pas trouvé trace dans la documentation fournie par HP :
MPO96 - HP50g advanced user manual.gif
Il existe un émulateur de hp50g sur iOS.
La commande SREPL renvoi 2 valeurs, la chaîne remplacée et le nombre de remplacements effectués.
Il doit y avoir une erreur dans le manuel, ou alors le comportement de SREPL a changé suivant les version ou encore que le comportement de SREPL dépend d’un Flag.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par dprtl »

Voici ci-dessous une nouvelle version. J'ai fixé le bug vu par bernouilli92. Ce programme fonctionne sur PB-1000 pour des valeurs de N jusqu'à 2^32-1 (avec 8 itérations) :

Code : Tout sélectionner

10 INPUT N:N1=INT(N/65536):N2=N-65536*N1:N=0
20 N$=HEX$(N1):GOSUB 50
30 N$=HEX$(N2):GOSUB 50
40 PRINT N:GOTO 10
50 FOR I=1 TO 4:C$=MID$(N$,I,1)
60 IF C$="0" THEN 110
70 IF C$="F" THEN N=N+4:GOTO 110
80 IF C$="1" OR C$="2" OR C$="4" OR C$="8" THEN N=N+1:GOTO 110
90 IF C$="7" OR C$="B" OR C$="D" OR C$="E" THEN N=N+3:GOTO 110
100 N=N+2
110 NEXT: RETURN
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par Gilles59 »

bernouilli92 a écrit : 27 sept. 2020 13:53
Gilles59 a écrit : 26 sept. 2020 21:34(UserRPL)

Code : Tout sélectionner

« BIN R->B ->STR "1" DUP SREPL  »
(newRPL)

Code : Tout sélectionner

« #0b SWAP + ->STR "1" DUP SREPL »
Il existe un émulateur de hp50g sur iOS.
La commande SREPL renvoi 2 valeurs, la chaîne remplacée et le nombre de remplacements effectués.
Il doit y avoir une erreur dans le manuel, ou alors le comportement de SREPL a changé suivant les version ou encore que le comportement de SREPL dépend d’un Flag.


Je confirme les deux valeurs et il n’y a pas de flag. SREPL a toujours fonctionné comme ça. Il y a une erreur dans le manuel cité par C.Ret. SREPL a toujours renvoyé deux objets : la chaîne modifiée et le nombre de changement.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par Gilles59 »

bernouilli92 a écrit : 27 sept. 2020 12:02 @Gilles59 pourquoi pas un while au lieu d’un do? Cela permet d’éviter le not.
Bien vu! J’ai pensé au while mais il me semblait que ça posait un pb...
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3405
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par C.Ret »

bernouilli92 a écrit : 27 sept. 2020 12:02

Code : Tout sélectionner

« 0 → N « WHILE DUP
          REPEAT DUP 2 / IP SWAP 2 MOD 'N' STO+ END
          DROP N » »
En fait, à part une astuce pour remplacer la clause WHILE ... REPEAT ... ENd et l'utilisation de l'instruction LAST, ton code est exactement ce que j'ai de plus court en RPL.

Merci pour la précision concernant le fonctionnement de SREPL, l'hypothèse la plus plausible est que je n'ai pas téléchargé le bon document. Concernant l'émulateur d'HP-50g, j'en ai un sur un PC fixe qui ne m'est pas accessible aujourd'hui car je suis en déplacement.
dprtl a écrit : 27 sept. 2020 12:08

Code : Tout sélectionner

10 INPUT N:N1=INT(N/65536):N2=N-65536*N1:N=0
20 N$=HEX$(N1):GOSUB 50
30 N$=HEX$(N2):GOSUB 50
40 PRINT N:GOTO 10
50 FOR I=1 TO 4:C$=MID$(N$,I,1)
60 IF C$="0" THEN 110
70 IF C$="F" THEN N=N+4:GOTO 110
80 IF C$="1" OR C$="2" OR C$="4" OR C$="8" THEN N=N+1:GOTO 110
90 IF C$="7" OR C$="B" OR C$="D" OR C$="E" THEN N=N+3:GOTO 110
100 N=N+2
110 NEXT: RETURN
Enfin un code en BASIC pour pocket. Je commençais à m'inquiéter.

L'idée est donc de ne pas compter bit à bit, mais de procéder par chiffre (ici en base hexadécimale) et d'ajouter le nombre de bits à un correspondant à chacun de ces chiffres.
On peut utiliser une autre base que l'hexadécimal, par exemple, on peut faire de même en base décimale, voici un code pour SHARP PC-1360 qui fait cela:

Code : Tout sélectionner

10 " " AREAD NN$:B=0: FOR I=1 TO LEN NN$: GOSUB MID$ (NN$,I,1): NEXT I: PRINT B: END 
20 "7" GOSUB 28
21 "9" 
22 "6"  
23 "5"  
24 "3" GOSUB 28
25 "8" 
26 "4" 
27 "2" 
28 "1" B=B+1
29 "0" RETURN
On est n'est limité que par le nombre de caractères que NN$ peut contenir, il est donc possible de vérifier que 182130867283365 contient 22 bits à un.

EDIT 28/09/2020:
C'est complètement faux, ce code ne fait pas le bon calcul, il détermine le nombre de bits à un d'un entier codé BCD - Voir post plus loin de dprtl.


Vivement que j'ai mon HP-71B, on peut y mettre plusieurs labels par ligne de code !

cgh a écrit : 27 sept. 2020 12:11

Code : Tout sélectionner

000 LBL "MPO96"
001   INT  CLST
003   LBL 00
004     X<> L  X=Y?  GTO 01
007     2  /  FRC  ST+ Z  ST+ Z  ST- L  GTO 00

014   LBL 01
015     X<> Z
016 END
J'aime bien le jeu avec le registre L:, ce qui me donne une idée qui raccourcit encore un peu mon code pour HP-41C:

Code : Tout sélectionner

001*LBL "MPO96"                                             
002   CL∑                                                   
003*  LBL 00                                                
004     RCL X  2  ST/ Z  MOD  ∑+  X<>Y  INT  X>0?  GTO 00   
012   RCL 12                                                   
013*END                                                     
Ce qui doit faire 22 octets avec le label alphanumérique global.
Gilles59 a écrit : 27 sept. 2020 15:13 Je confirme les deux valeurs et il n’y a pas de flag. SREPL a toujours fonctionné comme ça. Il y a une erreur dans le manuel cité par C.Ret. SREPL a toujours renvoyé deux objets : la chaîne modifiée et le nombre de changement.
Merci pour cette confirmation, effectivement l'explication la plus logique et bien que le manuel que j'ai téléchargé n'est ne correspond pas. En fait, il ne parle des trois Calculatrices graphique ensemble et donc doit certainement faire des erreur quand le fonctionnement de certaines instruction n'est pas strictement identique entre les trois modèles.

Sino, j'ai trouvé le moyen de gagner un pas sur CASIO fx-602p :

Code : Tout sélectionner

[P0]
 MAC                          001
 LBL0                         002
   / 2 - FRAC M+F M+F =       009
   x=0 x≥F GOTO0              012
 MRF                          013
J'évite le spaghetti de GOTO et le label LBL9 est jouant sur le fait que le registre F contient le nombre de bits à un et il est donc plus grand que zéro lorsque x arrive à zéro et strictement plus petit que n tout au long de la détermination. Le code fonctionne donc pour tout les entiers positifs non nuls.
Modifié en dernier par C.Ret le 28 sept. 2020 12:58, modifié 2 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par Gilles59 »

C.Ret a écrit : 27 sept. 2020 15:52
Sino, j'ai trouvé le moyen de gagner un pas sur CASIO fx-602p :

Code : Tout sélectionner

[P0]
 MAC                          001
 LBL0                         002
   / 2 - FRAC M+F M+F =       009
   x=0 x≥F GOTO0              012
 MRF                          013
J'évite le spaghetti de GOTO et le label LBL9 est jouant sur le fait que le registre F contient le nombre de bits à un et il est donc plus grand que zéro lorsque x arrive à zéro et strictement plus petit que n tout au long de la détermination. Le code fonctionne donc pour tout les entiers positifs non nuls.
Bravo ! Remarquable le double M+F :D Ca montre aussi un des rares défaut de la série 501-603P : le nombre limité de test ! Quel dommage qu'il n'y ait pas de x<>0 , x<0 etc. On s'en sort toujours parfois en jonglant comme ici le double test x=0 x>=F pour éviter les doubles GOTO... A part ce défaut je trouve que c'est une série de calculatrices (surtout les 602-603) hyper agréable à utiliser!
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par dprtl »

C.Ret a écrit : 27 sept. 2020 15:52 L'idée est donc de ne pas compter bit à bit, mais de procéder par chiffre (ici en base hexadécimale) et d'ajouter le nombre de bits à un correspondant à chacun de ces chiffres.
On peut utiliser une autre base que l'hexadécimal, par exemple, on peut faire de même en base décimale, voici un code pour SHARP PC-1360 qui fait cela:

Code : Tout sélectionner

10 " " AREAD NN$:B=0: FOR I=1 TO LEN NN$: GOSUB MID$ (NN$,I,1): NEXT I: PRINT B: END 
20 "7" GOSUB 28
21 "9" 
22 "6"  
23 "5"  
24 "3" GOSUB 28
25 "8" 
26 "4" 
27 "2" 
28 "1" B=B+1
29 "0" RETURN
On est n'est limité que par le nombre de caractères que NN$ peut contenir, il est donc possible de vérifier que 182130867283365 contient 22 bits à un.
Attention, la somme des bits d'un nombre codé en BCD, ça ne donne pas le même résultat ! Pour 182130867283365, je trouve 24 avec le programme ci-dessous en Basic 1000D :

Code : Tout sélectionner

input n
s$=bin$(n)
t$=change$(s$,"0","","11","1+1","11","1+1")
print val(t$)
C'est presque un code "pythonesque" mais l'adjectif est usurpé ici :)
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par cgh »

C.Ret a écrit : 27 sept. 2020 15:52 J'aime bien le jeu avec le registre L:, ce qui me donne une idée qui raccourcit encore un peu mon code pour HP-41C:

Code : Tout sélectionner

001*LBL "MPO96"                                             
002   CL∑                                                   
003*  LBL 00                                                
004     RCL X  2  ST/ Z  MOD  ∑+  X<>Y  INT  X>0?  GTO 00   
012   RCL 12                                                   
013*END                                                     
Ce qui doit faire 22 octets avec le label alphanumérique global.
Oui, bien vu le coup des registres statistiques, sauf que le programme ne marchera pas si les registres statistiques ont ete places ailleurs a l'aide de la commande ∑REG nn, Il faudrait les "forcer" a l'aide d'un ∑REG 11 au pas 002. De plus, il faut au moins posseder 17 registres pour ne pas avoir une erreur avec les registres statistiques. Le programme demande quand meme six registres pour l'utilisations des operations ∑...

Code : Tout sélectionner

001*LBL "MPO96"
002   ∑REG 11
003   CL∑                                                    
004*  LBL 00                                                
005     RCL X  2  ST/ Z  MOD  ∑+  X<>Y  INT  X>0?  GTO 00   
013   RCL 12                                                   
014*END                                                     
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par cgh »

Plus court et plus rapide 8)

Code : Tout sélectionner

01 LBL "MPO96"
02 INT
03 CLST
04 LBL 00
05 X<> L
06 X=0?
07 GTO 01
08 2
09 /
10 FRC
11 ST+ Y
12 ST- L
13 GTO 00
14 LBL 01
15 X<>Y
16 ST+ X
17 END
Le code fait 33 octets avec le label, 24 octets sans celui-ci.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par cgh »

Sur PC1500:

Code : Tout sélectionner

10 "A"AREAD A:C=0
20 IF A LET A=A/2:C=C+(A<>INT A):A=INT A:GOTO 20
30 PRINT C
Entrez le nombre n puis DEF A et le programme va afficher le resultat.
Ex:

Code : Tout sélectionner

1279 DEF A
9
1968 DEF A
6
0 DEF A
0
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
Avatar du membre
Hobiecat
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3626
Enregistré le : 06 sept. 2011 14:57
Localisation : Normandie

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par Hobiecat »

Le plus rapide, c'est sur HP-16C !

Code : Tout sélectionner

LBL 0
#B
RTN
:mrgreen:
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par cgh »

Hobiecat a écrit : 27 sept. 2020 21:07 Le plus rapide, c'est sur HP-16C !

Code : Tout sélectionner

LBL 0
#B
RTN
:mrgreen:
Excellent ! Toute la puissance des machines specialisees :geek:
Il n'y a pas cette fonction sur les 48/49/50 ?
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
Répondre

Retourner vers « Tous les Pockets »