Affichage en base 2 d'un nombre donné en base 10

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 192 fois - Téléchargée 34 fois

Contenu du snippet

Ma première fonction qui affiche le résultat en base 2 d'un chiffre (en base 10) passé en argument. (sous Linux)
Si vous avez des conseils pour l'améliorer, n'hésitez pas, merci d'avance. ;-)

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>

/* Fonction qui transforme le  Nombre en base 2 et l'affiche */
void base2 (int Nombre)
{
  /* Si le Nombre est + grand que 1 on fait un appel recursif de la fonction */
  if (Nombre>1)
    {
    base2 (Nombre/2);
    }
  /* Si le Nombre est + petit que 1, on affiche le reste grace au modulo */
  printf("%d",Nombre%2);
}

int main(int argc, char *argv[])
{
  /* Declaration et initialisaton des variables */
  int Nombre=0;
  char* NombreRecupere=NULL;

  /* On teste si le nombre d'arguments recupere sur la ligne de commande est bien 2: le programme et le nombre a traiter */
  /* Si ce n'est pas le cas, l'utilisateur peut saisir le nombre qu'il souhaite traiter */
  if (argc != 2)
    {
      printf("Veuillez entrer le nombre a convertir en base 2: ");
      scanf("%d",&Nombre);
    }
  else
    {
      /* Sinon on recupere le nombre (qui est sous forme de chaine) sur la ligne de commande */
      NombreRecupere = argv[1];

      /* On convertit cette chaine en un entier */
      Nombre = atoi(NombreRecupere);
    }

  /* On affiche le resultat en appelant la fonction Base2 qui traitera le nombre */
  printf("%d en base 2 s'ecrit:\n", Nombre);
  base2 (Nombre);
  printf("\n");

  return 0;
}

A voir également

Ajouter un commentaire

Commentaires

minet03
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
-
voilà moi, comment j'ai procédé : http://www.cppfrance.com/code.aspx?ID=26901
coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
29 -
Sur les calculatrices on écrit ça EE mais deux petits E majuscules ^^...

pour les bases de plus que 16 faut commencer par grouper dans un tableau de char ou de int...
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
c'est pour l'écriture dite scientifique des nombres.

si tu écris 5e2 ou 5E2 ça revient à écrire:

5 * 10^2 (5 fois 10 exposant 2) = 500

c'est pratique quand tu joues avec des nombres très grands ou très petits:

3e9 = 3 milliards
3e-9 = 3 milliardièmes (3 * 10^-9)

tu peux écrire tes nombres comme ça en C++ aussi, et c'est pfs pratique (par exemple, la constante de Kavendish (gravitation) vaut: 6.67e-11, c'est plus pratique à écrire que 0.0000000000667 :) et c'est même plus facile à relire.
kanagan
Messages postés
26
Date d'inscription
mercredi 17 décembre 2003
Statut
Membre
Dernière intervention
29 mars 2006
-
Salut Kirua,
euh je suis débutant alors j'ai pas tout compris ce que tu as écrit, ça devient compliquer :-(
C'est quoi le e/E ?
Sinon pour tester le +/- je vais essayer mais je ne te garantis rien ;-)
kanagan
Messages postés
26
Date d'inscription
mercredi 17 décembre 2003
Statut
Membre
Dernière intervention
29 mars 2006
-
Salut Saros,
alors normalement je pense tu peux faire ça avec les bases < 10, par contre pour les autres (comme la base hexa) je ne pense pas que ça marche...
Dites moi si je me trompe.

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.