begin process at 2012 05 27 20:52:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > TECHNIQUE SIMPLE DE CONVERSION BINAIRE DÉCIMAL

TECHNIQUE SIMPLE DE CONVERSION BINAIRE DÉCIMAL


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Classé sous :conversion, binaire, Décimal Niveau :Débutant Date de création :16/04/2010 Date de mise à jour :16/04/2010 12:48:18 Vu :3 923

Auteur : DarthKhaos

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

 Description

Voili voilou un petit programme que je partage pour toutes les personnes qui comme moi débute en programmation, il s'agit d'un programme pour convertir un mot binaire de 8bits en décimal mais sans passer par une méthode de conversion dite "standard" j'ai voulu innové (peut etre que sa existe deja, surement mais je ne l'ai pas trouver dans la recherche de source).

Source

  • #include <stdio.h>
  • #include <conio.h>
  • #include <stdlib.h>
  • int main(void)
  • {
  • short int tab [2][8] ={128,64,32,16,8,4,2,1,0,0,0,0,0,0,0,0};
  • int i,j,k,x=0;
  • printf("veuillez saisir le mot binaire:\n");
  • for(i=0;i<8;i++) //boucle saisie
  • {
  • scanf("%d",&tab[1][i]);
  • }
  • for(j=0;j<8;j++) //boucle verification affichage
  • {
  • printf("case:%d = %d\n",j,tab[1][j]);
  • }
  • for(k=0;k<8;k++)
  • {
  • if(tab [1][k]==1)
  • {
  • x=x+tab[0][k];
  • }
  • }
  • printf("le mot binaire =%d\n",x);
  • }
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


int main(void)
{
   short int tab [2][8] ={128,64,32,16,8,4,2,1,0,0,0,0,0,0,0,0};
   int i,j,k,x=0;

   printf("veuillez saisir le mot binaire:\n");
   for(i=0;i<8;i++) //boucle saisie
   {
       scanf("%d",&tab[1][i]);
   }

   for(j=0;j<8;j++) //boucle verification affichage
   {
       printf("case:%d = %d\n",j,tab[1][j]);
   }

    for(k=0;k<8;k++)
    {
        if(tab [1][k]==1)
        {
        x=x+tab[0][k];
        }
    }
    printf("le mot binaire =%d\n",x);
}

 Conclusion

un peu basique et amené a être améliorer sous peu dites moi ce que vous en pensez


 Historique

16 avril 2010 12:48:18 :
petite rectification sur le spécificateur de format

 Sources de la même categorie

Source avec Zip Source avec une capture PROGRAMME DE SUDOKU par AffreuxJojp
Source avec Zip EVALUATEUR D'EXPRESSION ARITHMÉTIQUE par matrx180vTitanium
Source avec Zip Source avec une capture QBIBLIO GESTION DES PRÊTS par conatic
Source avec Zip Source avec une capture QL-CHATROOM V 1.0 par mature
Source avec Zip Source avec une capture GEOLOCALISATION par ganjarasta

 Sources en rapport avec celle ci

CONVERSION DE FICHIER EN FICHIER BMP par seoseo
CONVERSION D'ENTIERS DANS LES BASES BINAIRE, HEXADECIMALE, O... par alyggattor
Source avec Zip Source avec une capture CONVERTISSEUR BINAIRE, HÉXA, DÉCIMAL UTILISANT LES API WINDO... par julien_boss
AFFICHAGE EN BASE 2 D'UN NOMBRE DONNÉ EN BASE 10 par kanagan
Source avec Zip CONVERSION DEC / HEX / BIN (WIN 32) par aardman

Commentaires et avis

Commentaire de CptPingu le 16/04/2010 18:00:48 administrateur CS

C'est un peu juste pour une source. Tu aurais du poster dans le forum avec comme titre: Critiquez mon code.

Voici deux corrections.

La première est une écriture correcte de ton code:

#include <stdio.h>

int main(void)
{
  short int tab[2][8] =
    {
      {128, 64, 32, 16, 8, 4, 2, 1},
      {0, 0, 0, 0, 0, 0, 0, 0}
    };
  int i, j, k, x = 0;

  printf("Veuillez saisir le mot binaire:\n");
  for (i = 0;i < 8; ++i)
    scanf("%hd", &tab[1][i]);

  for (j = 0; j < 8; ++j)
    printf("Case: %d = %hd\n", j, tab[1][j]);

  for (k = 0; k < 8; ++k)
    if (tab[1][k] == 1)
      x += tab[0][k];

  printf("Le mot binaire =%d\n", x);

  return 0;
}


La deuxième est une écriture un peu mieux (Plus flexible, il est facile de changer la taille du mot binaire, on pourrait même se passer du tableau d'ailleurs):

#include <stdio.h>

#define MAX 8

int main(void)
{
  short int tab[MAX] = {0};
  int i, x = 0;

  printf("Veuillez saisir le mot binaire:\n");
  for (i = 0; i < MAX; ++i)
    scanf("%hd", &tab[i]);

  for (i = 0; i < 8; ++i)
    printf("Case: %d = %hd\n", i, tab[i]);

  for (i = 0; i < MAX; ++i)
    if (tab[i] == 1)
      x += tab[i] * (i == 0 ? 1 : 2 << (i - 1));

  printf("Le mot binaire = %d\n", x);

  return 0;
}

Commentaire de ghuysmans99 le 16/04/2010 23:54:38

Je trouve quand même que cette méthode est plus propre (elle gère n'importe quel int) :
---

#include <stdio.h>
#include <math.h>

int binaire(const char* str)
{
int s_len = strlen(str), res = 0, val = 1;
char *s;
for (s=(char*)str+s_len-1;s>=str;s--)
{
if (*s=='1') res += val;
val<<=1;
}
return res;
}

int main(int argc, char* argv[])
{
char buf[11];
printf("Entrez un nombre en binaire : "); scanf("%10s",buf);
printf("Valeur en base 10 : %d\n",binaire(buf));
return 0;
}

Commentaire de vivi168 le 20/04/2010 20:55:20 1/10

mouai, c'est pas terrible terrible

d'abord t'es limité à 8 bits, et en plus l'utilisateur doit rentrer la totalité des 8 bits, même ceux qui servent à rien.
par exemple, je veux convertir 1101, je suis obligé d'écrire les quatre 0 inutiles avant. le pire, c'est que la saisie se fait ligne par ligne, bit par bit... c'est pas follement excitant.



 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

conversion binaire-décimal en C [ par Tooshort23 ] Bonjour,je suis étudiant en IUT GEII.Savais vous convertir un nombre binaire (de taille: 32 bits) en décimal ?merci de me donner des conseils.Si possi Conversion décimale => binaire [ par nicolas66 ] Bonsoir tlm,j'ai un pb un une ptite fonction pas très compliquée à mon avis :char * itob( int n ){ char * chaine; int i = 0; while ( n &gt; 0 ) { *(c probleme de conversion binaire [ par montie_s ] Je cree un programme capable de transformer les codes ascii de caracteres en leur equivalence en base 2, puis de reprendre ces nombre en binaire pour conversion d'une chaine type "01001000" en binaire [ par brennyboy ] Bonjour &#224; tous !J'aimerais savoir comment passer d'une chaine de 8 caracteres contenant seulement de 0 et des 1, au chiffre d&#233;cimal correspo CRC + affichage/conversion binaire [ par Ferrari01 ] Bonjour...Est-ce que quelqu'un aurait un petit programme de CRC et/ou un petit programme qui permet d'afficher 4 caractères en binaire (ex.: abcd -&gt conversion ip [ par mrtatou ] bonjour,voila je galere dur en c (je suis un novice!!!), je voudrai convertir une adresse ip en d&#233;cimal; c'est &#224; dire j'ai mon adresse du ty Conversion Binaire->Chaine et Chaine->Binaire [ par Rouliann ] Bonjour &#224; tous!Voil&#224; mon probl&#232;me : je veux convertir une couleur de 24 bits en une couleur 15bits...Le seul moyen que j'ai trouv&#233; conversion hexadecimal-binaire [ par naddoush ] salut tout le monde, je voudrais bien faire une conversion de l'hexadecimal en binaire, y a-t-il une fonctio que me permet de faire ça? je travaille Conversion chaine binaire en float, double... [ par renyone ] Bonjour, j'ai une chaine binaire (de 32 bits par exemple) et j'aimerais obtenir le float (ou double...) qu 'elle représente; Y a-t-il des fonctions dé conversion decimal - binaire [ par diabablo ] slt les amisj'aime la programmation mais pour debuter j'ai un peu de soucis tel que la conversion d'un nombre decimal en binaire. en faite ce n'est pa


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,437 sec (4)

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