Conersion base 10 => base 2=>16

Soyez le premier à donner votre avis sur cette source.

Snippet vu 2 799 fois - Téléchargée 27 fois

Contenu du snippet

Ben voila il suffit de rentrer une nombre en base 10 et la base ds laquelle on veut le convertir et hops ..

Source / Exemple :


#include <stdio.h>

int convertion (int base,int nombre,int tab []);
void convertion_nombre_lettres (int tab[],int i);

int convertion (int base,int nombre,int tab [])
{	
                int i;
	i=0; 
	do 
	{
		tab[i]=(nombre%base);
		nombre=nombre/base;
		i++;
	}
	while (nombre>0);
	return (i);
}
void convertion_nombre_lettres (int tab[],int i)
{
	
	int j;
	char conv[17] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
	for (j=0;j<i;j++)
	{
		tab[j]=conv[tab[j]];
	}
}

main ()
{
	int base,nombre,tab[32],i,j,continuer;
	
	do
	{
		printf("introduire une nombre entier positif en base 10\n");
		scanf ("%d",&nombre);
		printf("introduire la base de convertion (max=16)\n");
		scanf ("%d",&base);
		
		i=convertion (base,nombre,tab);
		printf("%d en base %d vaut : ",nombre,base);
		if (base>10)
		{
			convertion_nombre_lettres(tab,i);
			
			for (j=i-1;j>=0;j--)
			{
				printf ("%c",tab[j]);
			}
		}
		else 
		{
			for (j=i-1;j>=0;j--)
			{
				printf ("%d",tab[j]);
			}
		}
		printf("\n");
		printf ("voulez vous continuer ?(1=oui)\n");
		scanf ("%d",&continuer);
		printf("\n");
	}
	while (continuer==1);
}

A voir également

Ajouter un commentaire

Commentaires

vecchio56
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7 -
surtout aucune innovation dans la méthode, alors qu'il suffirait d'utiliser les oppérateurs sur les bits
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
erreur dans le titre + 20ème code du genre sur cppfrance, y en a un peu ras le bol, dsl...

et puis ds les noms de tes fct tu écris "convertion" ça c'est pas du français.

ah, une chose: évite les do/while, c'est Bjarne Stroustrup qui le dit lui-même! préfère des while.

change le char conv en static char conv.
static veut dire que la variable n'est pas détruite quand tu sors de la fonction, elle garde donc sa valeur. de plus, lorsque la fct est relancée, elle n'est plus initialisée, donc ton tableau n'est créé qu'une fois par exécution du programme, lors du premier appel de la fonction.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (apoilchantal)