Langage C : division et exposant ?

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.

4 réponses

  1. 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)
    2
    1. Contributeur
      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
      0
      1. 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!
        0
        1. 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 !
          ++
          2