IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Comment associer le code ASCII aux caractères


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Novembre 2007
    Messages : 31
    Points : 18
    Points
    18
    Par défaut comment associer a chaque caractère son code ASCII
    Créant en langage C un prog qui permet de convertir un message txt en binaire... en passant par les étapes suivantes:
    - convertir les caractère en code ASCII
    - convertir le code ASCII résultant en binaire.

    NB: je veux le créer juste en C et pas en C++

    alors le premier problème c'est comment associer a chaque caractère son code ASCII... aprés c'est de convertir le code en binaire...

    A:\MEDIUM

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Si les caractères sont représentés par le code ASCII par ton compilateur, ce qui est extrèmement probable, alors, chaque caractère " typographique" est représenté en interne par ce code. Ainsi, le caractère '0' est représenté en interne par le code 48 (en décimal) et 'A' par le code 65. Donc pour cette étape...., il n'y a rien à faire.
    Si le code utilisé pour la représentation des caractères n'est pas le code ASCII, il faut savoir quel code est utilisé pour réaliser le transcodage code X -> code ASCII
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  3. #3
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Tu l'as déjà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include <stdio.h>
     
    int main(void)
    {
        printf("%d\n", 'A');
     
        return 0;
    }
    Ça va donner "65" à la console. T'as juste à te faire une fonction dec2bin(int) et y passer les caractères de ton string.

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Novembre 2007
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Merci GnuVince
    je vais essayer avec ceci...
    merci encore

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Novembre 2007
    Messages : 31
    Points : 18
    Points
    18
    Par défaut voila ce que j'ai arrivé a faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    /* Le probleme qui reste est:
    Aprés avoir associer a chaque caractere son code ASCII, 
    alors comment faire pour stoker ces codes dans un tableau
    dynamique? (c-a-d en utilisant un pointeur.)*/
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    main()
    {
    	char *i,*l;
    l=(char*)malloc(sizeof(char));
    printf("\tEntrez le texte a convertir en binaire\n");
    gets(l);
    printf("\n\n");
    printf("%s\n\n\n",l);
    for(i=l;*i;i++)
    printf("\t\t%c -----> en code ASCII [%d]\n",*i,*i);
    printf("\n\t\t\t");
    }

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Salut, plusieurs petites choses :
    1) c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int main(void)
    {
    blabla;
    return 0;
    }
    2) enlève le cast avant le malloc
    2) tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char *i,*l;
    l=(char*)malloc(sizeof(char));
    n'est-ce pas plus simple faire "simplement"

    3) utilises fgets à la place de gets

    4)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for(i=l;*i;i++)
    printf("\t\t%c -----> en code ASCII [%d]\n",*i,*i);
    fait plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    unsigned i;
    for(i=0;i<strlen(l);i++) /* strlen(l) == 1 */
    printf("\t\t%c -----> en code ASCII [%d]\n",l[i],i);

  7. #7
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par y.medium Voir le message
    Créant en langage C un prog qui permet de convertir un message txt en binaire... en passant par les étapes suivantes:
    - convertir les caractère en code ASCII
    - convertir le code ASCII résultant en binaire.

    NB: je veux le créer juste en C et pas en C++

    alors le premier problème c'est comment associer a chaque caractère son code ASCII... aprés c'est de convertir le code en binaire...


    Que veux-tu exactement dire par convertir en binaire? Lorsqu'elles sont chargées en mémoire ou enregistrées dans un fichier, les données textuelles sont toujours représentées sous forme binaire. Tu n'a rien à convertir...

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Novembre 2007
    Messages : 31
    Points : 18
    Points
    18
    Par défaut VOILA ...
    voila le role que ce prog.c doit jouer:
    1- lire une chaine de caractère.
    2- associer a chaque caractère son code ASCII.
    3- enrigistrer les codes ASCII des caractères du chaine dans un tableau dynamaique ( c-a-d avec un pointeur a la place d'un tableau T[max]).
    4- Convertir les codes ASCII (des entiers c-a-d de base 10) en base 2 c-a-d en binaire.

    pour 1,2 et 3 voila ce que j'ai arrivé a faire:
    lisez le commentaire Svp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    /* Le probleme qui reste est:
    Aprés avoir associer a chaque caractere son code ASCII, 
    alors comment faire pour stoker ces codes dans un tableau
    dynamique? (c-a-d en utilisant un pointeur.)*/
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    main()
    {
    	char *i,*l;
    l=(char*)malloc(sizeof(char));
    printf("\tEntrez le texte a convertir en binaire\n");
    gets(l);
    printf("\n\n");
    printf("%s\n\n\n",l);
    for(i=l;*i;i++)
    printf("\t\t%c -----> en code ASCII [%d]\n",*i,*i);
    printf("\n\t\t\t");
    }
    Pour l'étape numéro 4:

    Svp lisez bien le commentaire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    /*le probleme qui rest est:
    Puisque il existe des caracrteres qui ont des
    codes ASCII négatif (EXEMPLE: é a -126 comme code ASCII),
    Alors comment faire pour convertir les entiers négatifs
    en binaire?*/
    #include<stdio.h>
    #include<stdlib.h>
    main()
    {
     
    int a,*l,b,i,j,k,aide,stok;
    l=(int*)malloc(sizeof(int));
    printf("\t------------------------------------------------------------------------\n");
    printf("\tNB:Pour l'instant ce Programme est vrai juste pour les entiers positifs\n\n");
    printf("\t------------------------------------------------------------------------\n");
    do{
    printf("Entrez le nombre a converti en binaire: ");
    scanf("%d",&a);
    if(a<0)
    printf(" Lisez bien la remarque en haut. Merci\n\n\n");
    }while(a<0);
    stok=a;
    i=-1;
    do
    {
    	i++;
    	l[i]=a%2;printf("i=%d\n\tl[%d]=%d  avec a=%d\n",i,i,*(l+i),a);
    	b=a/2;printf("\tb=a/2=%d\n",b);
    	a=b;printf("\tle Nouveau a est:%d\n",a);
    	printf("-------------\n\n");
     
    }while(b);
    j=i;
    printf("----------------------------------------\n");
     
    for(j=0,k=i;j<k;j++,k--)
    {
    aide=*(l+j);
    *(l+j)=*(l+k);
    *(l+k)=aide;
    }
    printf("%d en decimal(base 10) est egale a ",stok);
    printf("(");
    for(j=0;j<=i;j++)
    printf("%d",*(l+j));
    printf(")");
    printf(" en binaire(base 2).\n\n\t\t\t");
    return 0;
    }

    voila ce que j'ai fait.... Devellopant nous ceci pour qu'il soit bien claire a tt le monde. Merci pour vous tous.

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    4- Convertir les codes ASCII (des entiers c-a-d de base 10) en base 2 c-a-d en binaire.
    Erreur: Les codes ASCII en mémoire ne sont dans aucune base (à part la base 2 si on considère l'électronique) : Ils sont dans le format natif supporté par l'ordinateur.

    Il n'est question de "base" que quand le nombre est affiché ou représenté par une chaîne de caractères.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ...
    main() // A corriger : int main(void) 
    {
    	char *i,*l;// ne pas utiliser l tout seul comme identificateur, ça ressemble trop à 1(un)
    l=(char*)malloc(sizeof(char)); //Ceci alloue un tableau de UN caractère.
    // Noter que sizeof(char) == 1. Pour N caractères :l=malloc(N);
    ...
    gets(l); //Utilise fgets et renonce à gets.
    // Comme le tableau n'a qu'un caractère, on a juste la place pour ...une ligne vide,sinon -> plantage
    // la place du tableau étant occupée par le 0 terminal
    ...
    for(i=l;*i;i++) // Ecrire explicitement de préférence *l !=0. 
    printf("\t\t%c -----> en code ASCII [%d]\n",*i,*i);// respecter l'indentation
    Pour l'étape 4, on verra plus tard. Pour l'instant, corrige ce code
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  11. #11
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    S'il est juste question d'afficher une représentation binaire (je ne vois pas l'intérêt):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #include <stdio.h>
     
    void print_as_binary(unsigned long n)
    {
        int i = 0;
     
        while ((n >> i) != 0UL)
        {
            i++;
        }
     
        while (i >= 0)
        {
            printf("%ld", (n >> i) & 0x1);
            i--;
        }
    }
     
    int main(void)
    {
        char text[] = "abcdef";
        size_t i;
     
        for (i = 0; text[i] != 0; i++)
        {
            print_as_binary((unsigned char) text[i]);
            printf("(%d) ", (unsigned char) text[i]);
        }
        printf("\n");
     
        return 0;
    }
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Novembre 2007
    Messages : 31
    Points : 18
    Points
    18
    Par défaut Ok je vais essyé avec ce que vous m avez dit...
    Ok je vais essyé avec ce que vous m avez dit
    de toute façon merci pour vous tous...

    en fait Thierry Chappuis ... Svp tu peux ecrire le code avec des commentaire a chaque insructions. Parcque j'arrive pa a comprendre ce code ...
    Est ce que c est du C ou C++?
    Pour l instant je travaile juste sur le C alors tout code en C++ va etre absurd pour moi ... lol ... (C'est juste pour l'instant)
    Merci

  13. #13
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Novembre 2007
    Messages : 31
    Points : 18
    Points
    18
    Par défaut ...
    Voila koi: Je vient de penser a traité le prob avec les structures des données... voila ce que j'ai fait ...
    SVP ... aidez moi a finir ceci ds le plus proche possible

    NB: ce programe n'est pa propre... je sais pas ou l erreur existe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
     
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
     
     
    struct bal{
    	unsigned taille;
    	char c;
    	int a;
    	int *p;
    };
    typedef struct bal Tbal;
     
     
    struct maillon{
    	Tbal e;
    	struct maillon *psuivant;
    };
    typedef struct maillon Tmaillon;
     
     
    struct liste{
    	Tmaillon *ptete;
    	Tmaillon *pqueue;
    };
    typedef struct liste Tliste;
     
     
    Tbal creebal(char s,int b,unsigned taille)
    {
    		Tbal e;
    		e.taille=taille;
    		e.c=s;
    		e.a=b;
    		e.p=(int*)malloc(sizeof(int));
    		return e;
    }
    Tmaillon *creemaillon(Tbal b)
    	{
    		Tmaillon *m=malloc(sizeof(Tmaillon));
    		if(m!=NULL)
    		{
    		m->e.taille=b.taille;
    		m->e.c=b.c;
    		m->e.a=b.a;
    		m->e.p=(int*)malloc(sizeof(int));
    		m->psuivant=NULL;
    		} 
    		return m;
    	}
    void ajoutliste(Tliste *l,Tbal e, int *w)
    {
    	unsigned i;
    	Tmaillon *m=creemaillon(e);
    	for(i=0;i<m->e.taille;i++)
    		m->e.p[i]=w[i];
    	l->pqueue=m;
    	l->pqueue=m->psuivant;
    	if(l->ptete==NULL)
    		l->ptete=m;
    	return ;
    }
     
    Tliste *creeliste()
    {
    	Tliste *u=malloc(sizeof(Tliste));
    	u->ptete=NULL;
    	u->pqueue=NULL;
    	return u;
    }
    void affichage_binaire(Tliste *l)
    {
    	unsigned i;
    	Tmaillon *m;
    	m=l->ptete;
    	while(m!=NULL)
    	{
    		printf("(");
    	for(i=0;i<m->e.taille;i++)
    	printf("%d",m->e.p[i]);
    	printf(")");
    	m=m->psuivant;
    	}
     
    }
     
     
    main()
    {
    	unsigned j,taille,i,k;
    	int aide,stok,a;
    	int *l=(int*)malloc(sizeof(int));
    	int q;
    	Tbal z;
    	Tliste *x;
    	char *p,*ch,s;
     
    x=creeliste();
    ch=(char*)malloc(sizeof(char));
     
    printf("\tEntrez le texte a convertir en binaire\n");
    gets(ch);
    printf("\n\n");
    printf("%s\n\n\n",ch);
     
    for(p=ch,q=0;*p;p++,q++)
    {	
    	s=*(ch+q);
    	a=*(ch+q);
    	printf("\t\t%c -----> en code ASCII [%d]\n",s,a);
     
    	stok=a;
    	i=0;
    	if(stok==0)
    	{
    		l=malloc(1*sizeof(int));
    		l[0]=0;
    		i=2;
    	}
     
    	else 
    	do
    	{
    	l[i]=stok%2;
    	stok/=2;
    	i++;
    	}while(stok);
     
    	j=i;
    	taille=j;
    	z=creebal(s,a,j);
     
    	for(j=0,k=i;j<k;j++,k--)
    	{
    	aide=*(l+j);
    	*(l+j)=*(l+k);
    	*(l+k)=aide;
    	}
     
    	ajoutliste(x,z,l);
    	free (l);
    }
    printf("\n\n\t\t   (");
    affichage_binaire(x);
    printf(")");
    }
    Bon je vai essyé encore.. mon but c 'est arrivé a convertir un texte (chaine de caractères) en suite binaire.... Si vous avez une idée n'ésitez pas... Merci encore.....
    y.medium@gmail.com

    Juste en C et pas en C++


  14. #14
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par y.medium Voir le message
    Est ce que c est du C ou C++?
    A ton avis, tu es dans quel forum?

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  15. #15
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    #include <stdio.h>
     
    /* -tc- fonction permettant d'afficher la representation binaire d'un entier 
        sur le flux de sortie standard */
    void print_as_binary(unsigned long n)
    {
        int i = 0;
     
        /* -tc- on recherche le nombre de bits nécessaire pour representer 
            la valeur */
        while ((n >> i) != 0UL)
        {
            i++;
        }
     
        /* -tc- on affiche tous la valeur de tous les bits un par un, du bit de 
            poids le plus fort au bit de poids le plus faible */
        while (i >= 0)
        {
            printf("%ld", (n >> i) & 0x1);
            i--;
        }
    }
     
    int main(void)
    {
        /* -tc- on definit une chaine de test */
        char text[] = "abcdef";
        size_t i;
     
        /* -tc- pour chaque caractere de la chaine, on affiche sa representation
            binaire */
        for (i = 0; text[i] != 0; i++)
        {
            print_as_binary((unsigned char) text[i]);
            printf("(%d) ", (unsigned char) text[i]);
        }
        printf("\n");
     
        return 0;
    }
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  16. #16
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Novembre 2007
    Messages : 31
    Points : 18
    Points
    18
    Par défaut Merci ...
    oui tu as raison Thierry Chappuis... Merci de votre effort

    j'attend toujours une réponse pour pour la 4ième étape du prog


  17. #17
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par y.medium Voir le message
    oui tu as raison Thierry Chappuis... Merci de votre effort

    j'attend toujours une réponse pour pour la 4ième étape du prog

    C'est quoi cette 4ème étape? Si c'est de ça dont tu parles:

    Citation Envoyé par y.medium
    4- Convertir les codes ASCII (des entiers c-a-d de base 10) en base 2 c-a-d en binaire.
    J'y ai déjà répondu. En effet, ceci n'a un sens (encore que...) uniquement si tu désires afficher la représentation binaire d'un entier (code ASCII ou autre). En mémoire, toute valeur est déjà représentée sous forme binaire. C'est d'ailleurs ce fait que j'utilise pour effectuer l'affichage via une lecture de la valeur de l'entier bit par bit. Encore une fois, la question de conversion dans un contexte autre que l'affichage ne fait aucun sens.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  18. #18
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Novembre 2007
    Messages : 31
    Points : 18
    Points
    18
    Par défaut oé oé j'ai pa remarqué...
    voila mon travail final.................ca marche...

    Executer le et vous allez voir le résultat

    Mais le probleme cé comment faire pour stocké la suite binaire trouvé??????



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
     
    // -------------------------------------------------Bibliothèques utilisées----------------------
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    // -------------------------------------------------Bibliothèques utilisées----------------------
     
     
     
    // -----------------------------------------------Mes Structures des données---------------------
    struct codbin{
    	unsigned taille;
    	int a;
    	int *p;
    };
    typedef struct codbin Tcode;
     
     
    // -----------------------------------------------Mes Structures des données---------------------
     
     
     
    //-----------------------------------------------------Mes Fonctions-----------------------------
    void inverse(int *p, unsigned taille)
    {
    	unsigned i,j;
    	int aide;
    	for(i=0,j=taille-1;i<j;i++,j--)
    	{	
    		aide=*(p+i);
    		*(p+i)=*(p+j);
    		*(p+j)=aide;
    	}
    	return ;
    }
     
     
     
     
    void copier(int *p,int *m,unsigned taille)
    {
    	unsigned i;
    	for(i=0;i<taille;i++)
    	*(p+i)=*(m+i);
    	return ;
    }
     
     
    void affichtab(int *p, unsigned taille)
    {
    	unsigned i;
    	for(i=0;i<taille;i++)
    	printf("%d",*(p+i));
    	printf(" ");
    	return ;
    }
     
     
     
    void binaire(int a,char c)
    {
    	int x;
    	int *tmp=malloc(sizeof(int));
    	unsigned i;
    	Tcode *e=malloc(sizeof(Tcode));
    	if(tmp!=NULL)
    	{
    	x=a;
    	i=0;
    	if(x==0)
    	{
    		*(tmp+i)=0;
    		i++;
    	}
     
    	do
    	{
     
    		*(tmp+i)=x%2;
    		x/=2;
    		i++;
    	}while(x);
     
    	e->taille=i;
    	e->a=a;
    	e->p=malloc(e->taille*sizeof(int));
    	copier(e->p,tmp,e->taille);
    	inverse(e->p,e->taille);
    	affichtab(e->p,e->taille);
     
    	}
    	return ;
    }
     
     
     
     
    //-----------------------------------------------------Mes Fonctions-----------------------------
     
     
     
    //---------------------------------------------------------main----------------------------------
    main()
    {
    int *tmp=malloc(sizeof(int));
    unsigned i,taille;
    char *ch=malloc(sizeof(char));
    int a;
    //--------------------------------------------------------main-----------------------------------
     
     
     
     
     
     
     
     
     
    //----------------------------------------------------Mon Programme------------------------------
    printf("\tEntrez votre texte que vous voulez convertir en binaire:\n\n\t");
    gets(ch);
    printf("\n\n\n");
    for(i=0;i<strlen(ch);i++)
    {
    	printf("\t\t%c -----> en code ASCII [%d]\n",*(ch+i),*(ch+i));
    	*(tmp+i)=*(ch+i);
    }
    printf("\n\n\n  ");
    taille=i;
    for(i=0;i<taille;i++)
    {
    	a=*(tmp+i);
    	binaire(a,*(ch+i));
    }
    printf("\n\n\n\t\t");
    }
    //---------------------------------Réaliser par Medium-------------------------------------------
    Il ya un autre problem cé que le code ASCII de "é" et "è"... et d'autres caractères est négatif ---> alors la suite binaire serai comme suit ....
    -0-1-1-1-10 par exemple !!!????

  19. #19
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Novembre 2007
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    de tout façon merci pour vous tous ... en image; vous allez voir que le prog marche bien.....
    veuillez voir l'image suivante (Oublier pa de l'agrandir comme ca vous allez voir en calire l'exection):

    http://www4.0zz0.com/2007/11/18/15/96296792.jpg

    j'espère que j'ai réussi a bien expliqué mon sujet ...

    NB: ICI je travail en C sur Windows et pas sur Linux.

    A:\MEDIUM

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/04/2009, 22h43
  2. Comment écrire un shell qui transforme un code ascii en caractère?
    Par jack-ft dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 21/04/2008, 17h51
  3. Comment récupérer le code ASCII d'un caractère?
    Par Blue_Strike dans le forum Delphi
    Réponses: 6
    Dernier message: 04/05/2007, 00h38
  4. [Hardware portable] Comment entrer un code Ascii?
    Par l.sage dans le forum Ordinateurs
    Réponses: 13
    Dernier message: 11/08/2005, 13h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo