begin process at 2012 05 27 14:56:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > CONVERTIR UN NOMBRE BINAIRE EN DÉCIMAL ET INVERSEMENT

CONVERTIR UN NOMBRE BINAIRE EN DÉCIMAL ET INVERSEMENT


 Description

Tout est dans le titre, voici deux fonctions sorties d'une adaptation personnelle de mon cours de logique ... Elle permettent de convertir un decimal en binaire et inversement ...

Source

  • void dec_to_bin ( int dec, int bin[8] )
  • {
  • int i,temp, resultat, reste;
  • resultat = dec;
  • for (i = 7; i >= 0; i-- )
  • {
  • temp = resultat;
  • resultat = resultat / 2;
  • reste = temp - resultat * 2;
  • bin[i] = reste;
  • }
  • }
  • int bin_to_dec (int bin[8] )
  • {
  • int i,temp, resultat;
  • resultat = 0;
  • for (i = 0; i < 8; i++ )
  • {
  • resultat = resultat * 2 + bin[i];
  • }
  • return resultat;
  • }
void dec_to_bin ( int dec, int bin[8] )
{
	int i,temp, resultat, reste;
	resultat = dec;
	for (i = 7; i >= 0; i-- )
	{
		temp = resultat;
		resultat = resultat / 2;
		reste = temp - resultat * 2;
		bin[i] = reste;
	}
}

int bin_to_dec (int bin[8] )
{
	int i,temp, resultat;
	resultat = 0;
	for (i = 0; i < 8; i++ )
	{
		resultat = resultat * 2 + bin[i];
	}
	return resultat;
}

 Conclusion

Je suppose que celle -ci n'ont pas besoin de commentaires, le code est assez simple ...


 Sources du même auteur

LECTURE DE L'ENTÊTE D'UN FICHIER BMP [GCC]
HEURE SUR AFFICHEUR 7 SEGMENTS [GCC]
Source avec Zip GESTION DE PACK
Source avec une capture CALCULATRICE
Source avec une capture PAC-MANIAK

 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 Hylvenir le 27/02/2004 11:20:34

Ca fait longtemps que j'ai fait du C...
C'est un peu plus court et plus limité à 8 (il y a sûrement mieux mais je débute dans ce domaine)... j'suis même pas sûr que ce soit plus rapide (un peu quand même)

void dec_to_bin ( int dec, int* bin, int size ) {
    int i = 0;
    for ( i = size-1; i &gt;= 0; --i, dec &gt;&gt;= 1 )
        bin[i] = dec & 0x01;
}

int bin_to_dec( int* bin, int size ){
    int resultat = 0, i = 0;
    for ( i = 0; i &lt; size; i++ )
        resultat = (resultat &lt;&lt; 1) | bin[i];
    return resultat;
}

Commentaire de Funcky le 27/02/2004 14:11:21

Ouai, pourquoi pas, en fait les fonctions ici j'avais pa besoin de polus de 8 bits, puisque c'était un traitement d'unsigned char ... en fait pour un fichier lu octet par octet ...

Commentaire de Adeon le 08/05/2007 12:16:22

Pour l'info ( meme si je post ce message 3 ans apres ^^ ) le reste d'une division de A par B se note A%B.

voila !
a++

Commentaire de mogador le 10/12/2009 15:58:09

Bonjour,

je souhaiterais convertir n'importe quel type de fichier (txt, jpg, avi, exe ...) en fichier binaire ou plutot en fichier texte contenant un suite de 0 et 1. et la meme chose faire le contraire.



Merci pour votre aide.

sed

Commentaire de Adeon le 10/12/2009 16:05:37

voila l'idée :

boucle
{
  char cOctet FichierSource->Read;
  char szOctet[8];
  Transformer cOctet en 8 caractères '0' ou '1' et les mettre dans szOctet[8]
  for(int i=0;i<8;i++)
  {
    FichierDestination->Write(szOctet[i]);
  }


}

Commentaire de mogador le 11/12/2009 16:26:41

et comment je peu faire ca ,

j'ai essyé ca mai ca marche pas:


#include <stdio.h>

int main(int argc, char **argv) {
/*
FILE *fp;
fp=fopen("test.c", "wb");
char x[10]="ABCDEFGHIJ";
fwrite(x, sizeof(x[0]), sizeof(x)/sizeof(x[0]), fp);
*/

FILE *fp;
fp=fopen("test.c", "rb");
char x[10];//="ABCDEFGHIJ";
fread(x, sizeof(char), 10, fp);

printf("%d================",sizeof(x));
printf("\n");
for(int i=0;i<sizeof(x);i++)
{

printf("%x==========",x[i]);
//printf("\n");
for(int j=7;j>=0;j--)
{
//printf("(%d)",j);
printf("%d",(x[i]>>j)&(255>>7));
}
printf("\n");
}




}

 Ajouter un commentaire




Nos sponsors


Sondage...

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,671 sec (3)

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