Chaine de caractères en binaire

sensen - 2 nov. 2012 à 17:29
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 4 nov. 2012 à 12:31
Salut à tous,
voilà j'ai développé un petit code pour transformer un chaine de caractères ascii en binaire(le code se trouve en dessous).
Voici mon problème, j'aimerais ajouter un entête à ma chaine bianire.
ex:
cool en binaire me donne "01...."
et moi j'aimerais ajouter entête "101" pour que ça me donne : "10101..."
J'ai pas réussi à trouver si quelqu'un pouvez me donner une idée ça serait génial.

Merci d'avance!!


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

using namespace std;

int main(){
char *name;
name="cool";
int longueur = strlen(name);//nombre de caractères de ma chaine
printf("longueur %d\n",longueur);
ostringstream chainebin[longueur];
ostringstream namebin;
for (int j=0; j<longueur;j++){
for (int i=7 ; i>=0 ; i--){
chainebin[j] << ((name[j] & (int)pow(2.0, i)) != 0);
}
int caractdec=name[j];
cout << name[j] << " -- " << caractdec << " -- " << chainebin[j].str() << endl;
namebin<<chainebin[j].str();
}
cout<<"namebin "<<namebin.str()<<endl;
}

1 réponse

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
4 nov. 2012 à 12:31
Bonjour.

- Évite les "using namespace", voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace

Il te suffit de remplacer:
cout << "namebin " << namebin.str() <<  endl;

par:
const std::string res = std::string("101") + namebin.str();
std::cout << "namebin " << res << std::endl;


________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
Rejoignez-nous