π
<-

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

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

Unread postby Persalteas » 12 Jun 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: Select all
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 ;)
User avatar
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 6.2%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
MyCalcs profile
Class: PhD candidate, Bioinformatics

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

Unread postby Bisam » 12 Jun 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 !!
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

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

Unread postby Persalteas » 12 Jun 2013, 16:19

:o

Exact. Beaucoup mieux.
User avatar
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 6.2%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
MyCalcs profile
Class: PhD candidate, Bioinformatics

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

Unread postby Wistaro » 06 Feb 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!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.5%
 
Posts: 3191
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

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

Unread postby Hayleia » 06 Feb 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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

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

Unread postby Wistaro » 06 Feb 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!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.5%
 
Posts: 3191
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

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

Unread postby Hayleia » 06 Feb 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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

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

Unread postby Hayleia » 06 Feb 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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

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

Unread postby pigman » 06 May 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%
User avatar
pigman
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 72%
 
Posts: 7
Joined: 05 May 2014, 16:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: 2nde

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

Unread postby grosged » 17 May 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: Select all
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 ;)
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

Next

Return to TI-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 1 guest

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1414 utilisateurs:
>1358 invités
>49 membres
>7 robots
Record simultané (sur 6 mois):
7582 utilisateurs (le 25/06/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)