| Conversion héxadécimal à décimal |
| Auteur |
Message |
Picarros
Autorisation : Membre
Nb de messages : 4
Inscrit le : Dim 18 Déc 2011, 14:26
|
Posté le : Dim 18 Déc 2011, 14:30
|
|
|
Bonjour à tous. Alors voilà, depuis pas mal de temps je me suis lancé dans un "petit" programme qui permet de faire des conversion (décimal, binaire, gray, octal, héxadécimal, BCD). Mais je bloque sur une conversion : de l'héxadécimal vers le décimal.
Si quelqu'un pouvait m'aider pour créer ce morceau de programme ce serait sympas .
Et s'il est possible pourquoi ne pas pouvoir entrer directement "1F6A" (16) ?! Avec des lettres et des chiffres ? Sinon vous faites comme vous voulez, parce que là je bloque complètement.
Merci d'avance ! 
|
 |
|
| |
sandro
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Dim 18 Déc 2011, 14:42
|
|
|
| Code | Imput "HEXA:",Chaîne1 //Chaîne1 ce trouve dans Var/7/1 et
s'appelle Str1 en anglais
10 -> A
11 -> B
12 -> C
13 -> D
14 -> E
15 -> F
longueur(Chaîne1 -> L
0 -> X
For(I,0,L-1
X+16^L*expr(Sous-chaîne(Chaîne1,L-I -> X //expr( et Sous-chaîne( se trouvent
uniquement dans le catalogue ; et sont respectivement expr( et sub( en anglais
End
Disp X |
Je pense que ça devrait marcher.
Sandro
PS : si ça marche pas, je ne pourrais pas corriger le programme dans les prochains 10 jours (pas d'ordi) donc il te faudra chercher quelcun d'autre qui veille bien t'aider
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
 |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Dim 18 Déc 2011, 15:46
|
|
|
Je peux t'aider aussi.
Mais je ne sais pas si tu as une bonne maîtrise de l'aspect mathématique des bases.
Ce qu'a montré sandro est une méthode simple mais on peut l'optimiser.
Si tu as besoin d'aide pour la première, on la débrouillera avant de débrouiller la suivante.
Mais sandro a oublié un argumment pour la sous-chaîne.
X+16^L*expr(Sous-chaîne(Chaîne1,L-I,1 -> X
| Code | Input "HEXA:",Chaîne1
longueur(Chaîne1->L
EffVar X
For(I,0,L-1
carChaîne("0123456789ABCDEF",sous-chaîne(Chaîne1,L-I,1))-1
X+Rép*16^I->X
End
Disp X |
édité
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
 |
|
| |
Picarros
Autorisation : Membre
Nb de messages : 4
Inscrit le : Dim 18 Déc 2011, 14:26
|
Posté le : Dim 18 Déc 2011, 16:10
|
|
|
Merci à vous. Les programme que vous m'avez passé bug : erreur indéfini :S
Comme je suis sur TI 82 stats fr, j'ai chercher les traduction et j'ai donc remplacer :
X-1+16^I*inString("0123456789ABCDEF",sub(Str2,L-I,1->X
Par :
X-1+16^I*carChaîne("0123456789ABCDEF",sous-Chaîne(Chaîne2,L-I,1->X
Mais l'erreur indéfini est là (en rouge). Je sais pas quoi faire ^^'.
J'attend ta réponse. Merci à vous deux.
Edit : Je viens de voir que tu as modifié. Ce que j'ai fais aussi :
Code indéfini ici :
carChaîne("0123456789ABCDEF",sous-Chaîne(Chaîne2,L-I,1))-1
J'attend avec impatience 
|
 |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Dim 18 Déc 2011, 17:15
|
|
|
Je me suis planté en faisant un copier/coller.
Il faut remplacer Str2 par Str1. (Chaîne2 par Chaîne1)
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
 |
|
| |
Picarros
Autorisation : Membre
Nb de messages : 4
Inscrit le : Dim 18 Déc 2011, 14:26
|
Posté le : Dim 18 Déc 2011, 17:45
|
|
|
Ca marche du tonnerre ! Merci infiniment ! 
|
 |
|
| |
Picarros
Invité
|
Posté le : Dim 18 Déc 2011, 21:26
|
|
|
Juste une question à cent sous, tu pourrais m'expliquer comment fonctionne le code la ? Ainsi que les chaines, sous chaines ... en générale ?
Merci d'avance.
|
| |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |
Picarros
Invité
|
Posté le : Dim 18 Déc 2011, 22:51
|
|
|
Merci à vous. Les programme que vous m'avez passé bug : erreur indéfini :S
Comme je suis sur TI 82 stats fr, j'ai chercher les traduction et j'ai donc remplacer :
| Code | | X-1+16^I*inString("0123456789ABCDEF",sub(Str2,L-I,1->X |
Par :
| Citer | | X-1+16^I*carChaîne("0123456789ABCDEF",sous-Chaîne(Chaîne2,L-I,1->X |
Mais l'erreur indéfini est là (en rouge). Je sais pas quoi faire ^^'.
J'attend ta réponse. Merci à vous deux.
Edit : Je viens de voir que tu as modifié. Ce que j'ai fais aussi :
Code indéfini ici :
| Code | | carChaîne("0123456789ABCDEF",sous-Chaîne(Chaîne2[couleur=#FF0000],[/couleur]L-I,1))-1 |
J'attend avec impatience 
|
| |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Lun 19 Déc 2011, 0:20
|
|
|
Je ne sais pas à quoi tu joues avec ta balise citation.
Oui je veux bien sûr t'expliquer le code.
Déjà les fonctions sont expliquées ici
Décortiquons ces lignes :
| Code | X+16^L*expr(Sous-chaîne(Chaîne1,L-I -> X
carChaîne("0123456789ABCDEF",sous-chaîne(Chaîne1,L-I,1))-1
X+Rép*16^I->X |
sous-chaîne sert à décomposer la chaîne saisie au début.
expr sert à calculer la valeur du contenu d'une chaîne. Ici la sous-Chaîne. Comme on affecte au début des valeurs aux lettres A,B etc ces valeurs sont utilisées de la même façon que les nombres.
carChaîne sert à rechercher une chaîne dans une autre. Ici elle recherche la sous-chaîne dans "01...DEF" ce qui donne une valeur pour chaque nombre et lettre.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
 |
|
| |
Picarros
Autorisation : Membre
Nb de messages : 4
Inscrit le : Dim 18 Déc 2011, 14:26
|
Posté le : Lun 19 Déc 2011, 11:20
|
|
|
Merci à toi pour ces explications !
(Le "citer" est un gros fail ._., je voulais mettre les "codes" sauf que je dormais à moitié et j'ai pas vu que j'avais cliquer sur "citer" °°, si t'arrives à suppr. le message ça serait pas mal .)
|
 |
|
| |
The K
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
|
Posté le : Lun 19 Déc 2011, 19:08
|
|
|
Si tu veux j'ai aussi le convertisseur de bases que j'utilise - mais qui n'est pas de moi- qui te traduit toutes les bases de 2 à 36. Tu veux ? 
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind
Mes nouveaux programmes de calcul formel : FCarré FPrime
Projet base de données : ici mais abandonné. Trop de travail ... |
 |
|
| |
Erdnuss
Autorisation : Membre
Nb de messages : 30
Inscrit le : Mer 14 Déc 2011, 20:42
|
Posté le : Lun 19 Déc 2011, 19:24
|
|
|
Moi oui !!!
Il ne fait pas la base unaire ??? ^^
---------------------- Il y a 11 sortes de personnes. Ceux qui connaissent le unaire et ceux qui ne le connaissent pas. |
 |
|
| |
The K
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
|
Posté le : Lun 19 Déc 2011, 19:36
|
|
|
Base 1 ? Bah non ^^ elle est tout simplement impossible à faire ^^
Mais tu le connais toi je crois "mon" convertisseur 
| Code | :Input "NB ",Chaine1 //le nbr à convertir
:Input "BA ",C //la base de départ
:Input ">B ",D //la base d'arrivée
:"123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ->Chaine2
:longueur(Chaine1->A
:0
:For(¤,1,A //¤=theta
:Rep+C^(A-¤)CarChaîne(Chaine2,sous-chaine(Chaine1,¤,1
:End
:Rep->B
:"0"+Chaine2->Chaine2
:While B
:ent(B/D->C
:sous-chaine(Chaine2,B-DC+1,1)+Chaine1->Chaine1
:C->B
:End
:Disp sous-chaine(Chaine1,1,longueur(Chaine1)-A
|
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind
Mes nouveaux programmes de calcul formel : FCarré FPrime
Projet base de données : ici mais abandonné. Trop de travail ... |
 |
|
| |
Polymorph
Autorisation : Membre
Nb de messages : 118
Inscrit le : Dim 13 Nov 2011, 14:26
|
Posté le : Lun 19 Déc 2011, 20:03
|
|
|
| Citer |
Base 1 ? Bah non ^^ elle est tout simplement impossible à faire ^^
|
Ben si! 5 en base unaire, ça ferait 11111!
----------------------
| Citer | | Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter. |
Polymorph, 23/11/2011 |
 |
|
| |
The K
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
|
Posté le : Lun 19 Déc 2011, 20:50
|
|
|
Bon. Correction ^^'
Base 1 ? Bah ça servirait à rien (non avouez !)
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind
Mes nouveaux programmes de calcul formel : FCarré FPrime
Projet base de données : ici mais abandonné. Trop de travail ... |
 |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Lun 19 Déc 2011, 22:35
|
|
|
Heureusement que tu as utilisé des guillemets pour désigner le covertisseur sinon je t'aurais accusé de plagier mdr1.
Si vous voulez la même chose avec quelques options et si vous n'êtes pas parano de la mémoire vous pouvez essayer le mien. CONVERS (oui j'avoue que je suis fier de mon programme)
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
 |
|
| |
The K
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
|
Posté le : Lun 19 Déc 2011, 23:46
|
|
|
(ne t'en fais pas pour mdr1, erdnuss était au courant ... Sinon merci de préciser pour les autres ^^' )
Ah oui ton programme a l'air bien aussi c'est en tous cas parfois utile !
Je m'y perds cependant un peu plus que celui de mdr1, dans lequel j'ai du mal a comprendre seulement 10 lignes (comment ça le programme fait 10 lignes ? ). Nan bref ! Avec les explications et un peu de temps ça le fait !
Et sinon t'as acheté une ti-84 pocket ? J'adore leur design perso 
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind
Mes nouveaux programmes de calcul formel : FCarré FPrime
Projet base de données : ici mais abandonné. Trop de travail ... |
 |
|
| |