Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : convertir un caractères en binaire [ Divers / Débutant(e) ] (BAHROUNRABII)

samedi 1 novembre 2008 à 12:39:34 | convertir un caractères en binaire

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 passant par les étapes suivantes:
- convertir les caractères en code ASCII.
- convertir le code ASCII résultant en binaire.

Merci de votre aide d'avance.

NB: je veu le crée juste en C et pa en C++

bonne journée


samedi 1 novembre 2008 à 21:21:35 | Re : convertir un caractères en binaire

ciberrique

En C les char sont deja des entiers (donc code ascii) par conséquent il ne reste plus qu'a convertir en binaire :

avec un code que j'ai trouvé en quelques secondes sur le site pour convertir entier en binaire voici un exemple :

void IntToBin(int n, char *psz)
{
  if(!n) *psz++ = 48;
  else {
    while(!(n & 0x80000000)) n <<= 1;
    while(n) {
      *psz++ = (n & 0x80000000) ? 49: 48;
      n <<= 1;
    }
  }
  *psz = 0;
}


int main()
{
    char a = 'a';
    char *bin = new char[8];      //8 bits doivent suffirent

    IntToBin((int)a, bin);      //Conversion

    printf("%s",bin);   //Affichage du resultat

    return 0;
}


Pour convertir un texte, tu as juste a modifier ce code pour faire une boucle sur le nombre de lettre. Si c'est pas clair demande.


www.e-fitz.com
Encore plus de source et de tutoriels.


lundi 3 novembre 2008 à 11:53:13 | Re : convertir un caractères en binaire

BAHROUNRABII


 Bonjour ciberrique
    Merci pour votre attention et votre aide mais je suis vraiment désolé car je n'arrive pas à comprendre votre code. si c'est possible est ce que vous pouvez me l'éclairçir avec des commentaire sur chaque ligne surtout concernant le code de la fonction "IntToBin" .


void IntToBin(int n, char *psz)
{
  if(!n) *psz++ = 48;
  else {
    while(!(n & 0x80000000)) n <<= 1;
    while(n) {
      *psz++ = (n & 0x80000000) ? 49: 48;
      n <<= 1;
    }
  }
  *psz = 0;
}


int main()
{
    char a = 'a';
    char *bin = new char[8];      //8 bits doivent suffirent

    IntToBin((int)a, bin);      //Conversion

    printf("%s",bin);   //Affichage du resultat

    return 0;
}

Merci de votre aide d'avance.

bonne journée


lundi 3 novembre 2008 à 18:53:23 | Re : convertir un caractères en binaire

ciberrique

La fonction IntToBin n'est pas de moi comme je l'ai dis je l'ai trouvé sur une source de cppfrance, voici donc ce que je peux commenter :

void IntToBin(int n, char *psz)   //n = l'entier a convertir, *psz  un pointeur sur un tableau de caractere
{
  if(!n) *psz++ = 48;                                    //si n = 0, psz[0] = 0   (0 en ascii = 48)
  else {                                                         //sinon
    while(!(n & 0x80000000)) n <<= 1;         // tant que n & 0x80000000   (la valeur binaire de n ET (bit a bit) 0x80000000) = 0 alor n * 2 (decalage des bits de un 0 a vers la gauche)

    while(n) {                                                //tant que n !=0
      *psz++ = (n & 0x80000000) ? 49: 48;        //psz[i] = si (n & 0x80000000) == true alors 49 (49 en ascii = 1) sinon 48 (0)
      n <<= 1;                                                      //decalage d'un 0 des bits de n vers la gauche
    }
  }
  *psz = 0;         // on met le pointeur a nul
}


//Donc en gros si j'ai bien compris (aux autres utilisateurs du forum de me corriger),
//si n = 0 alors la valeur binaire est 0 sinon
//tant que n & 0x80000000 != 0x80000000 on multiplie n par 2
//tant que (n)
//psz[i] =  0 si n & 0x80000000 est paire 1 sinon
// en faite on traite le dernier bit comme si c'etait le reste de la division par 2 (si je me trompe pas) du coup ca reviens au meme que le calcul par division mais avec des multiplication par 2.


int main()
{
    char a = 'a';                           //Un char que j'initialise avec 'a'
    char *bin = new char[8];      //8 bits doivent suffirent, en faite c'est pour stocker le resultat de l'appel de la fonction IntToBin

    IntToBin((int)a, bin);      //Conversion, appel de la fonction IntToBin, en castant (int) a on obtient la valeur asci car les char sont en faite des entiers

    printf("%s",bin);   //Affichage du resultat

    return 0;
}



www.e-fitz.com
Encore plus de source et de tutoriels.



Cette discussion est classé dans : code, binaire, convertir, ascii, caractères


Répondre à ce message

Sujets en rapport avec ce message

convertir ascii en hexa [ par mootmoot ] Bonjour à tous!Voila un "recepteur wi-fi" me renvoi une trame en code ascii du genre 486039 et je voudrais le le code hexa correspondant. Voila bien s Convertir un code C++ en java [ par dorra2006 ] Bonjour tout le monde;J'ai un code C++ que je veux convertir en java. Est ce que vous connaissez un logiciel qui fait la conversion du C++ en java?Mer Comment convertir de l'ascii représentant de l'hexa. en une valeur hexadecimal? [ par tomaok ] Bonjour,je cherche à récupérer des données hexadecimal de 1 octet enregistrées dans un fichier texte suivant ce format :  A57F6E3C...    donc sans esp Fonction atoi() [ par piche32 ] Bonjour, J'aurais besoin d'une explication sur la fonction atoi(). Je récupere un caractere grâce à un getchar() et j'aimerais avoir la valeur décimal coment convertir un fichier texte en fichier binaire [ par infodaoudi ] Bonjour,existe il une fonction qui converti un fichier texte par example composé de float séparé par des espaces (example 1.2 3.2 2.5...) en un fichie Division Binaire pour CRC [ par raph004 ] Bonjour,Je recherche le code d'un fonction qui renverrais le reste d'une division binaire en C.C'est pour gérer du contrôle CRC.Pourriez-vous me donne convertir une chainne en binaire [ par meryabdou ] bonjour,je suis débutante ,et je veux convertir une chainne de caractere en binaire,est ce qu'il existe une fonction directe,aussi je veux convertir u Caractères ASCII sous Dos [ par Lorenzo ] Salut,Je n'arrive pas sous Dos à afficher des accents (é,è,à etc...) avec la fonction printf, celle-ci remplace ces caractères par d'autres.D'où cela Comment convertir un texte en ASCII [ par Arcocide ] Je dois envoyer un texte par l'intermediaire d'un Edit dans C++ builder 5 en ASCII. Je demande donc comment convertir mon texte que j'envois en ASCII. Code ASCII [ par SuperDoudou ] SuperDoudouJe n'arrive pas trouver les touches dont les codes ascii sont 224 et 13.De +, est-ce que je me trompe si je pense que les codes ascii des


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.