A voir également:
- Exposant en c
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
4 réponses
Salut,
- Pour calculer x puis y tu as pow qui se trouve dans math.h
- Pour les conversions base à base, si tu restes dans les bases "classiques" tu n'as pas grand chose à faire sauf pour l'affichage binaire. Je met un petit exemple très simple.
Je n'ai pas mis les headers et je te laisses écrire la fonction bindec ;-)
A++
C'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont raison! (COLUCHE)
- Pour calculer x puis y tu as pow qui se trouve dans math.h
- Pour les conversions base à base, si tu restes dans les bases "classiques" tu n'as pas grand chose à faire sauf pour l'affichage binaire. Je met un petit exemple très simple.
void decbin (int valeur, char *resultat) { int n = 0; char bitn[2]; for (n = 31 ; n >= 0 ; n--) { sprintf(bitn,"%d", ((valeur & (1 << n)) == (1 << n))); strcat(resultat, bitn); // Cosméthique, sert à séparer les quartets par un espace if (n % 4 == 0) strcat(resultat, " "); } } int main(int argc, char *argv[]) { int nb; char bin[40] = {0}; nb = 325; decbin(nb, bin); printf("Base 2: %s\tBase 8: %o\tBase 10: %d\tBase 16: %X\n",bin, nb, nb, nb); return 0; }
Je n'ai pas mis les headers et je te laisses écrire la fonction bindec ;-)
A++
C'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont raison! (COLUCHE)
Pour ceux qui chercheraient encore sur ce vieux post une aide sur les exposants en langage C, voici comment il faut procéder :
int main()
{
___int nb, e, res, b;
/* "e" est l'exposant à appliquer au nombre "nb" ; le résultat sera stocké dans "res" ; et b sert pour la boucle "for" : */
/* Ici on imagine que l'on aquière "nb" et "e", en suposant que "e" est un entier strictement positif... */
___res=nb; // On place une 1ère fois "nb" dans "res"...
___for(b=1;b<e;b++) // puis on passe e-1 fois dans cette boucle...
______res=res*nb;
/* Voilà, ici nous avons res = nb^e (marche aussi pour e=1), libre à vous d'en faire ce que vous voulez ! */
___return 0;
}
Cette solution n'est bien sûr pas la seul possible ; elle permet cependant de conserver les valeurs de "nb" et de "e" de départ.
Bonne chance pour la suite !
++
int main()
{
___int nb, e, res, b;
/* "e" est l'exposant à appliquer au nombre "nb" ; le résultat sera stocké dans "res" ; et b sert pour la boucle "for" : */
/* Ici on imagine que l'on aquière "nb" et "e", en suposant que "e" est un entier strictement positif... */
___res=nb; // On place une 1ère fois "nb" dans "res"...
___for(b=1;b<e;b++) // puis on passe e-1 fois dans cette boucle...
______res=res*nb;
/* Voilà, ici nous avons res = nb^e (marche aussi pour e=1), libre à vous d'en faire ce que vous voulez ! */
___return 0;
}
Cette solution n'est bien sûr pas la seul possible ; elle permet cependant de conserver les valeurs de "nb" et de "e" de départ.
Bonne chance pour la suite !
++
bonjour!!!
la division entière: /
Mais, il faut que tu ai des entiers.
Ensuite, qu'entends tu par exposant?
Pour convertir en n'importe quelle base, il faut d'abord comprendre comment tu passerais mathématiquement d'une base à l'autre, via la division entière!
bon courage!
Maily :-))))
Boumj'chtattrape
la division entière: /
Mais, il faut que tu ai des entiers.
Ensuite, qu'entends tu par exposant?
Pour convertir en n'importe quelle base, il faut d'abord comprendre comment tu passerais mathématiquement d'une base à l'autre, via la division entière!
bon courage!
Maily :-))))
Boumj'chtattrape