CONVERTIR UN NOMBRE BINAIRE EN DÉCIMAL ET INVERSEMENT

Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 - 27 févr. 2004 à 11:20
cs_mogador Messages postés 33 Date d'inscription mercredi 18 octobre 2000 Statut Membre Dernière intervention 4 janvier 2010 - 11 déc. 2009 à 16:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/20787-convertir-un-nombre-binaire-en-decimal-et-inversement

cs_mogador Messages postés 33 Date d'inscription mercredi 18 octobre 2000 Statut Membre Dernière intervention 4 janvier 2010
11 déc. 2009 à 16:26
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");
}

}
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
10 déc. 2009 à 16:05
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]);
}

}
cs_mogador Messages postés 33 Date d'inscription mercredi 18 octobre 2000 Statut Membre Dernière intervention 4 janvier 2010
10 déc. 2009 à 15:58
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
cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
8 mai 2007 à 12:16
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++
cs_Funcky Messages postés 59 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 11 mai 2006
27 févr. 2004 à 14:11
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 ...
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
27 févr. 2004 à 11:20
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 >= 0; --i, dec >>= 1 )
bin[i] = dec & 0x01;
}

int bin_to_dec( int* bin, int size ){
int resultat 0, i 0;
for ( i = 0; i < size; i++ )
resultat = (resultat << 1) | bin[i];
return resultat;
}
Rejoignez-nous