begin process at 2012 05 29 14:25:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

probleme de conversion binaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme de conversion binaire

jeudi 20 janvier 2005 à 23:53:01 | probleme de conversion binaire

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 les retransformer en nombre en base 10 et pouvoir les reafficher a l'ecran. J'ai reussi a realiser la 1ere etape, c'est a dire transformer un code ascii en binaire. Je stock mon resultat dans un tableau de char. Mais je bloque pour transformer ce tableau contenant des '0' et des '1' en un int. Merci de votre aide. imotep !
vendredi 21 janvier 2005 à 00:37:21 | Re : probleme de conversion binaire

bayeto

Membre Club
un int c'est 32 zeros et uns pour une machine 32 bits...
vendredi 21 janvier 2005 à 00:54:21 | Re : probleme de conversion binaire

montie_s

oui je met sui mal exprimer , je ne cherche pa a recuperer un int
mais plutot le nombre en base 10 correspondant a la suite de 0 et 1 contenue dans mon tableau.
Cependant le choix de ne remplir que 8 cases est justifier car  un code ascii n'est jamais superieur a 256 = 2^8
vendredi 21 janvier 2005 à 01:13:48 | Re : probleme de conversion binaire

Spiffou

ben je sais pas ce que tu veux faire, mais si tu connais le caractere de depart, pourquoi tu t'embetes avec une conversio binaire -> int alors que tu peux simplement convertir les char en int avec la fction: atoi...
http://www.cplusplus.com/ref/cstdlib/atoi.html

non??

pour ton prog t'as qu'a pas utilisé tes codes binaires, et utiliser atoi pour afficher l'ascii de ton caractere en base 10.
vendredi 21 janvier 2005 à 01:18:17 | Re : probleme de conversion binaire

montie_s

En fait j'ai 2 programmes, un client et un serveur ki tournent sur la meme machine
je rentre une chaine de caractere au client qui la converti en binaire et l'envoi en temps reel au serveur a l'aide des signaux SIGUSR1 et SIGUSR2. Le serveur doit alors effectuer l'operation inverse et m'afficher ma chaine de caractere a partir du binaire --> c'est la que je bloque, je recupere bien le binaire mais je ne comprend pas comment le retranscrire en code ascii.
vendredi 21 janvier 2005 à 10:30:27 | Re : probleme de conversion binaire

Spiffou

sinon en cherchant un peu sur cppfrance-->http://www.cppfrance.com/code.aspx?ID=24539
ca ressemble pas mal à ton pb non? conversion binaire decimal.

par contre pour passer du flux binaire aux char, soit tu trouves un truc tt fais, soit tu le code toi même en utilisant les opérateurs binaires comme <<, >>, |, etc... puisque tu connais la taille du flux que tu envoies ca devrait être faisable.
bon courage
vendredi 21 janvier 2005 à 16:12:00 | Re : probleme de conversion binaire

CurieuxDeSavoir

 char TabBinaire[8];  //ton tableau binaire
 unsigned char Val[8];
 int ValAscii;   // la valeur de ton tableau binaire en int

 // si ton tableau stock le caractere '0' ou '1'  ( TabBinaire[0] = '1' ou TabBinaire[0] = '0' )
 for(int i=0; i<8; i++)
 {
  if(TabBinaire[i] == '0') Val[i] = 0;
  else      Val[i] = 1;
 }

 ValAscii = 128*Val[7] + 64*Val[6] + 32*Val[5] + 16*Val[4]
                + 8*Val[3] + 4*Val[2] + 2*Val[1] + 1*Val[0] ;

 


 // si ton tableau stock la valeur '0' ou '1'  ( TabBinaire[0] = 1 ou TabBinaire[0] = 0 )
 ValAscii = 128*TabBinaire[7] + 64*TabBinaire[6] + 32*TabBinaire[5] 
     + 16*TabBinaire[4] + 8*TabBinaire[3]
     + 4*TabBinaire[2] + 2*TabBinaire[1] + 1*TabBinaire[0] ;



 unsigned char ValeurCodeAscii ; // la valeur du code ascii 255 max
 ValeurCodeAscii = (unsigned char)ValAscii;



Je n'ai pas tenu compte du poids fort faible des valeurs de ton tableau.
J'espere que ca repond a ta question.


vendredi 21 janvier 2005 à 16:36:08 | Re : probleme de conversion binaire

bayeto

Membre Club

Désolé mais j'ai pas pu m'en empecher...

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

char* type2bin(char dec,char* bin)
{
 int r = 8;//nb de cases binaires

 memset(bin,'0',r); //par defaut le nb bin est nul
 bin[r] = 0;

 while(r--)
  bin[r] = '0' + ((dec & (1 << r)) != 0);
 
 return bin;
}

char bin2char(char* bin)
{
 char dec = 0;
 char* pos = bin;

 while(pos < bin + 8)
 {
  dec += ((*pos - '0') * (1 << (pos - bin)));

  pos++;
 }
 return dec;
}

int main(int argc,char* argv[],char* envp[])
{
 char* salut = "Tout est ici...";
 
 if(argc > 1)
  salut = argv[1];

 char blb[9];
 char* cat = new char[strlen(salut)*8 + 1];

 if(!cat)
  return 1;

 *cat = 0;


 while(*salut)
 {
  //conversion du char en binaire
  cout << *salut << " " << type2bin(*salut,blb);
       
  //conversion du binaire en char
  char c = bin2char(blb);
  cout << " " << c << " " << hex << (int) c;
  cout << endl;

  strcat(cat,blb);

  salut++;
 }

    cout << endl << "La chaine binaire complete..." << endl
   << cat << endl << "correspond a..." << endl;

 salut = cat;

 while(*salut)
 {
        cout << bin2char(salut);
  salut += 8;
 }
 cout << endl;

 delete [] cat;
 return 0;
}

dimanche 23 janvier 2005 à 14:19:35 | Re : probleme de conversion binaire

montie_s

Merci de votre aide, je m'en suis sortit grâce à la methode de bayeto mais celle de CurieuxDeSavoir fonctionne tout aussi bien.

vendredi 28 janvier 2005 à 11:03:56 | Re : probleme de conversion binaire

gtlpcl

Salut à tous,



Très honnêtement, je ne vois pas l'intérêt d'une telle opération.
Si j'ai bien compris vos sources et problème, Le programma récupère une chaîne de caractères par l'entrée standard, la vonvertit en binaire en rangeant la valeur dans un tableau de caractères composé de '1' et '0' (donc une autre chaîne de caractère dont la taille est supérieure à la taille de la chaîne avant convertion) pour la reconvertir dans le format original.

Finalement, tu convertit une chaîne de caractère en une autre chaîne, plus grande, pour la remettre dans la même situation qu'avant.
Je ne vois pas très bien le but de l'opération, mais il me semble que cette famause convertion ne soit pas très performante

Bien à vous.

PCL
-- Il n'y a pas de problèmes, il n'y a que des solutions. C'est mathématique. --

1 2

Cette discussion est classée dans : binaire, probleme, conversion, ascii, transformer


Répondre à ce message

Sujets en rapport avec ce message

convertir un caractères en binaire [ par BAHROUNRABII ] bonjours tous,  Je  suis débutant en Programmation et je veut créer en langage C un prog qui permet de convertir un message txt en binaire... en p transformer un arbre n-aire en un arbre binaire [ par breakkk ] Sridina Svp je veux un algorithme qui transforme un arbre n-aire en un arbre binaire [^^sad1] c urgeeeeent aidez moi svp [^^sad2] Conversion binaire -> Texte [ par milanoran ] Bonjour j'ai un petit problème avec une application sous visulen c++ 6.0 qui nécessite une conversion binaire -> caractère . pour être plus précis j Probleme de conversion char int string... [ par pyr0123 ] Salut, Je code un échange de trames (t'chat) par port série entre 2 PC en C++ .net VStudio 2k5. J'envoie la chaine 'toto' du PC1 vers PC2, avec l'hyp Conversion ascii hexadecimal [ par Grenapeel ] Bonjour,je vous expose mon problème: je lis des données ASCII sur un port RS232 grace a la fonction ReadFileet je les stockent dans buf. Je cherche a conversion binaire vers float rs-232 [ par zilot2 ] bonjours et pardonnez mon français: j'ai un projet pic16f qui consiste a envoyer un nombre float au port rs-232 puis je l'affiche sur pc.mon probleme conversion ASCII [ par jamal_ ] salut a tout le monde, l'orsque j'ai saisi une lettre a partir du clavier , je veus afficher à l'ecran son code ASCII et puis l'ASCII codé en binaire. Conversion binaire d'un nombre saisi au clavier [ par Debord10 ] Bjr! J'ai un petit souci,je voudrai convertir un nombre en binaire,mais ça marche pas;je sais quoi faire! Voilà ce que j'aifais : #include #include us Conversion décimale binaire [ par Coincoinisback ] Bonjour, je dois écrire un programme qui affiche la conversion binaire d'un nombre entier (compris entre 0 et 4 294 067 295, codé sur 32 bits) mais l'


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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

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