Menu

Langage C : division et exposant ? [Fermé]

kapgue - 14 déc. 2004 à 10:48 - Dernière réponse :  Cuicui
- 15 avril 2007 à 20:31
bonjour, s'il vous plait.
quel est le symbole de la division entière et de l'exposant en langage c.comment faire un programme c qui convertit un nombre en une base quelconque a en une autre base b.
Afficher la suite 

4 réponses

Ravachol 565 Messages postés vendredi 5 mars 2004Date d'inscription 30 octobre 2005 Dernière intervention - 14 déc. 2004 à 12:00
+2
Utile
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.
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)
Cette réponse vous a-t-elle aidé ?  
+2
Utile
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 !
++
Cette réponse vous a-t-elle aidé ?  
maily 7560 Messages postés lundi 26 juin 2000Date d'inscriptionContributeurStatut 3 octobre 2015 Dernière intervention - 14 déc. 2004 à 11:00
0
Utile
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
acissokho 1 Messages postés mardi 30 novembre 2004Date d'inscription 14 décembre 2004 Dernière intervention - 14 déc. 2004 à 12:24
0
Utile
Salut!
symbole de la division entiere:/
l'operateur exposant(puissance)n'existe pas en langage c.
Il faut d'abord ecrire l'algorithme pour faciliter la programmation
à bientot!