π
<-

Astuce: s'assurer qu'un entier est binaire (0 ou 1)

Astuce: s'assurer qu'un entier est binaire (0 ou 1)

Message non lude Persalteas » 12 Juin 2013, 12:26

J'utilise une propriété de la fonction factorielle pour une optimisation sympatique:

Si vous avez un entier, et que vous avez besoin de savoir si sa valeur est binaire (par exemple pour une variable booléenne) ou non (tout autre utilisation de la variable, un test très simple se propose à vous:

Code: Tout sélectionner
If X!=1


En effet, 0!=1 et 1!=1, alors que pour tout autre valeur entière, X!=/=1. Attention, la fonction factorielle n'est définie que sur les entiers (et sur les demi-entiers :o ), donc assurez vous de ne pas avoir une valeur à virgule sinon erreur domain...

Bon, je sais pas si ça servira a grand chose, mais je m'en suis servi pour utiliser la même variable pour deux trucs différents qui ne peuvent pas arriver en même temps dans un jeu.

Enjoy ;)
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Re: Astuce: s'assurer qu'un entier est binaire (0 ou 1)

Message non lude Bisam » 12 Juin 2013, 16:19

A mon avis, tester si X^2=X est bien plus rapide... surtout si X vaut (par exemple) plus de 1000...
En plus, ça marche même si X n'est pas un entier !!
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5670
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Astuce: s'assurer qu'un entier est binaire (0 ou 1)

Message non lude Persalteas » 12 Juin 2013, 16:19

:o

Exact. Beaucoup mieux.
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Re: Astuce: s'assurer qu'un entier est binaire (0 ou 1)

Message non lude Wistaro » 06 Fév 2014, 11:35

Merci de l'astuce!
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 88.5%
 
Messages: 3191
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Astuce: s'assurer qu'un entier est binaire (0 ou 1)

Message non lude Hayleia » 06 Fév 2014, 11:40

On peut aussi tester si X modulo 2 est égal à X, non ? Ça se fait ultra-vite en bas niveau (suffit de faire "and 1") quelque soit la valeur de X (alors que X! et X2 peuvent aller un peu moins vite sur des grands nombres).

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: Astuce: s'assurer qu'un entier est binaire (0 ou 1)

Message non lude Wistaro » 06 Fév 2014, 11:43

Je ne crois pas qu'il y ais le modulo en tibasic z80
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 88.5%
 
Messages: 3191
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Astuce: s'assurer qu'un entier est binaire (0 ou 1)

Message non lude Hayleia » 06 Fév 2014, 12:01

Au pire, X-2int(X/2

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: Astuce: s'assurer qu'un entier est binaire (0 ou 1)

Message non lude Hayleia » 06 Fév 2014, 20:43

En TI Basic z80, on peut aussi faire X=not(not(X

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: Astuce: s'assurer qu'un entier est binaire (0 ou 1)

Message non lude pigman » 06 Mai 2014, 10:22

Il serait intéressant de réaliser un programme qui transforme n'importe quel nombre en sa version binaire...
La signature charge... Merci de patienter...

53%
Avatar de l’utilisateur
pigman
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Prochain niv.: 72%
 
Messages: 7
Inscription: 05 Mai 2014, 16:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: 2nde

Re: Astuce: s'assurer qu'un entier est binaire (0 ou 1)

Message non lude grosged » 17 Mai 2014, 17:09

(je pense que ça a été forcément déjà programmé, mais...)

Je viens de m'amuser à faire ce petit programme de conversion décimal->binaire

Code: Tout sélectionner
Prompt X
" →Str1
While int(X
.5int(X→X
sub("01",1+2fPart(X),1)+Str1→Str1
End
Ans

en gros , on divise la partie entière de X par 2 (résultat mis dans X) :
s'il y a un reste alors le bit (en partant du plus faible jusqu'au plus fort) du résultat sera à 1, sinon 0
Chaque bit est donc stocké tour-à-tour dans Str1
et on continue ainsi tant que la partie entière de X est > à 0
Au final , Str1 contient la version binaire de X


Edit: en 2ème ligne du prog, c'est bien un espace qui est stocké dans Str1 ;)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.5%
 
Messages: 776
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Suivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2071 utilisateurs:
>2036 invités
>27 membres
>8 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)