begin process at 2012 05 27 15:26:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > DECIMAL-> TOUT !

DECIMAL-> TOUT !


 Information sur la source

Note :
9,67 / 10 - par 3 personnes
9,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Niveau :Débutant Date de création :13/08/2001 Date de mise à jour :14/08/2001 00:00:00 Vu :3 355

Auteur : fhr

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Le code est très simple : on saisit le nombre à convertir, la base dans laquelle on veut convertir, et hop ! (limite des bases = 64, mais on peut très simplement repousser la limite en agrandissant le switch qui gère les symboles (pour les chiffres >9) ).

Source

  • #include<stdio.h>
  • int inverse (int * ronny, int bozo);
  • int main (void)
  • {
  • int a,base,*result, intermed,i=0,y=0,z=0,rep;
  • do
  • {
  • printf("Saisissez votre nombre :");
  • scanf("%d", &a);
  • getchar();
  • printf("Saisissez la base dans laquelle vous voulez convertir (jusqu'a 64) ?");
  • scanf("%d", &base);
  • getchar();
  • if(! ( result = (int *) malloc(sizeof(int)) ) )
  • {
  • printf("Erreur mémoire !\nFin du programme");
  • getchar();
  • return 1;
  • }
  • if(!a)
  • printf("0");
  • else if(!base);
  • else if(base == 1)
  • for(i=0;i<a; i++)
  • printf("0");
  • else if(base == 10)
  • printf("%d",a);
  • else
  • {
  • while(a)
  • {
  • intermed = a%base ;
  • a/=base ;
  • result[i++]= intermed;
  • if(! ( result = (int *) realloc(result,(i+1)* sizeof(int) ) ) )
  • {
  • printf("Erreur mémoire !\nFin du programme");
  • getchar();
  • return 1;
  • }
  • }
  • result[i] = 99;
  • inverse(result,y);
  • }
  • i=y=z=0;
  • printf("\nVoulez vous continuer (o/n) ?");
  • }while((rep=getchar()) == 'o');
  • return 0;
  • }
  • int inverse (int * ronny, int bozo)
  • {
  • if(ronny[bozo] != 99 )
  • {
  • inverse(ronny,bozo+1);
  • switch(ronny[bozo])
  • {
  • case 10 : printf("A"); break;
  • case 11 : printf("B"); break;
  • case 12 : printf("C"); break;
  • case 13 : printf("D"); break;
  • case 14 : printf("E"); break;
  • case 15 : printf("F"); break; /*héxa*/
  • case 16 : printf("G"); break;
  • case 17 : printf("H"); break;
  • case 18 : printf("I"); break;
  • case 19 : printf("J"); break;
  • case 20 : printf("K"); break;
  • case 21 : printf("L"); break;
  • case 22 : printf("M"); break;
  • case 23 : printf("N"); break;
  • case 24 : printf("O"); break;
  • case 25 : printf("P"); break;
  • case 26 : printf("Q"); break;
  • case 27 : printf("R"); break;
  • case 28 : printf("S"); break;
  • case 29 : printf("T"); break;
  • case 30 : printf("U"); break;
  • case 31 : printf("V"); break;
  • case 32 : printf("W"); break;
  • case 33 : printf("X"); break;
  • case 34 : printf("Y"); break;
  • case 35 : printf("Z"); break;
  • case 36 : printf("a"); break;
  • case 37 : printf("b"); break;
  • case 38 : printf("c"); break;
  • case 39 : printf("d"); break;
  • case 40 : printf("e"); break;
  • case 41 : printf("f"); break;
  • case 42 : printf("g"); break;
  • case 43 : printf("h"); break;
  • case 44 : printf("i"); break;
  • case 45 : printf("j"); break;
  • case 46 : printf("k"); break;
  • case 47 : printf("l"); break;
  • case 48 : printf("m"); break;
  • case 49 : printf("n"); break;
  • case 50 : printf("o"); break;
  • case 51 : printf("p"); break;
  • case 52 : printf("q"); break;
  • case 53 : printf("r"); break;
  • case 54 : printf("s"); break;
  • case 55 : printf("t"); break;
  • case 56 : printf("u"); break;
  • case 57 : printf("v"); break;
  • case 58 : printf("w"); break;
  • case 59 : printf("x"); break;
  • case 60 : printf("y"); break;
  • case 61 : printf("z"); break;
  • case 62 : printf("$"); break;
  • case 63 : printf("£"); break; /*limite des bases = 64 (mésopotamie) */
  • default : printf("%d", ronny[bozo]);
  • }
  • }
  • }
#include<stdio.h>

int inverse (int * ronny, int bozo);
int main (void)
{
    int a,base,*result, intermed,i=0,y=0,z=0,rep;
    do
    {
        printf("Saisissez votre nombre :");
        scanf("%d", &a);
        getchar();

        printf("Saisissez la base dans laquelle vous voulez convertir (jusqu'a 64) ?");
        scanf("%d", &base);
        getchar();

        if(!  (  result  = (int *) malloc(sizeof(int))  )    )
        {
            printf("Erreur mémoire !\nFin du programme");
            getchar();
            return 1;
        }

        if(!a)
            printf("0");
        else if(!base);


        else if(base == 1)
            for(i=0;i<a; i++)
                printf("0");

        else if(base == 10)
            printf("%d",a);

        else
        {
            while(a)
            {
                intermed = a%base ;
                a/=base ;
                result[i++]= intermed;

                if(!  (  result  = (int *) realloc(result,(i+1)* sizeof(int) )  )    )
                {
                    printf("Erreur mémoire !\nFin du programme");
                    getchar();
                    return 1;
                }
            }
            result[i] = 99;
            inverse(result,y);
         }

    i=y=z=0;

    printf("\nVoulez vous continuer (o/n) ?");
    }while((rep=getchar()) == 'o');

return 0;
}

int inverse (int * ronny, int bozo)
{
    if(ronny[bozo] != 99 )
    {
        inverse(ronny,bozo+1);
        switch(ronny[bozo])
        {
            case 10 : printf("A"); break;
            case 11 : printf("B"); break;
            case 12 : printf("C"); break;
            case 13 : printf("D"); break;
            case 14 : printf("E"); break;
            case 15 : printf("F"); break; /*héxa*/
            case 16 : printf("G"); break;
            case 17 : printf("H"); break;
            case 18 : printf("I"); break;
            case 19 : printf("J"); break;
            case 20 : printf("K"); break;
            case 21 : printf("L"); break;
            case 22 : printf("M"); break;
            case 23 : printf("N"); break;
            case 24 : printf("O"); break;
            case 25 : printf("P"); break;
            case 26 : printf("Q"); break;
            case 27 : printf("R"); break;
            case 28 : printf("S"); break;
            case 29 : printf("T"); break;
            case 30 : printf("U"); break;
            case 31 : printf("V"); break;
            case 32 : printf("W"); break;
            case 33 : printf("X"); break;
            case 34 : printf("Y"); break;
            case 35 : printf("Z"); break;
            case 36 : printf("a"); break;
            case 37 : printf("b"); break;
            case 38 : printf("c"); break;
            case 39 : printf("d"); break;
            case 40 : printf("e"); break;
            case 41 : printf("f"); break;
            case 42 : printf("g"); break;
            case 43 : printf("h"); break;
            case 44 : printf("i"); break;
            case 45 : printf("j"); break;
            case 46 : printf("k"); break;
            case 47 : printf("l"); break;
            case 48 : printf("m"); break;
            case 49 : printf("n"); break;
            case 50 : printf("o"); break;
            case 51 : printf("p"); break;
            case 52 : printf("q"); break;
            case 53 : printf("r"); break;
            case 54 : printf("s"); break;
            case 55 : printf("t"); break;
            case 56 : printf("u"); break;
            case 57 : printf("v"); break;
            case 58 : printf("w"); break;
            case 59 : printf("x"); break;
            case 60 : printf("y"); break;
            case 61 : printf("z"); break;
            case 62 : printf("$"); break;
            case 63 : printf("£"); break;  /*limite des bases = 64 (mésopotamie) */
            default : printf("%d", ronny[bozo]);
        }

    }
}
  

 Conclusion

(petite erreur quand j'ai publié le code la 1ère fois: j'avais mis "BINAIRE-&gt;TOUT", désolé.


 Sources du même auteur

CRYPTER : VIGENÈRE/CÉSAR
DECRYPTER : VIGENÈRE/CÉSAR

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

Commentaires et avis

Commentaire de gorgonzola le 20/10/2002 16:54:57

c'est bien mais par contre ton enorme switch c une horreur, taurais pu faire :

if (ronny[bozo]&lt;10) printf("%c",ronny[bozo]+'0');
if ((ronny[bozo]&lt;36)&&(ronny[bozo]&gt;9)) printf("%c",ronny[bozo]+'A'-10);
etc...

Commentaire de fhr le 23/10/2002 21:48:11

gorgonzola &gt; oui c'est vrai. J'étais jeune quand j'ai écrit ça ! ;-)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales