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 :

afficher un caractère à partir de son code ascii


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut afficher un caractère à partir de son code ascii
    bonjour
    j<ai une question a propos du code ascii.
    je dois afficher un caractere a partir de son code ascii.
    disons que je travaille sur 5 bit et j<ai le nombre suivant : 01110
    je fait les clacul :
    0*(2 ^ 4) + 1*( 2 ^ 3) + 1*( 2 ^ 2) + 1* (2 ^ 1) + 0* (2 ^0) = 14.
    le prof dit que 01110 = la lettre n .
    comment je peux arriver a la lettre n a partir de 14.
    merci les gars.(les filles aussi).

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut affecter une variable a partir du shell
    Bonjour (bonsoir).
    voila, je suis entrain d'ecrire un programme en c mais pendant la compilation et en utilisant la fonction #echo je dois initialiser deux variable.
    en fait mon exercice consiste a crypter une phrase et pour cela je dois sprecifier la taille de l<encryptage ( sur 5 , 7 , ou 8 bit), et je dois aussi avoir une autre variable qui doit specifier si on encrypte ou on decrypte un message .
    je dois utiliser la syntaxe suivante.

    # echo message | tp1 –d –taille=5


    et les deux parametres peuvent etre inverser comme suit

    # echo message| tp1 –taille=5 -d


    j'ai pense a faire des strcmp("-taille=5", argv[1]) par exemple puis pour les autres aussi, mais je me demande si on peut declarer

    #define taille
    et quand on compile ca l'affecte automatiquement -taille=5.

    ca serait tres aprecie si qqun pourait me dire comment faire .
    merci.

  3. #3
    Membre régulier Avatar de anas.eh
    Profil pro
    Inscrit en
    Février 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2007
    Messages : 181
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par baguinga Voir le message
    bonjour
    j<ai une question a propos du code ascii.
    je dois afficher un caractere a partir de son code ascii.
    disons que je travaille sur 5 bit et j<ai le nombre suivant : 01110
    je fait les clacul :
    0*(2 ^ 4) + 1*( 2 ^ 3) + 1*( 2 ^ 2) + 1* (2 ^ 1) + 0* (2 ^0) = 14.
    le prof dit que 01110 = la lettre n .
    comment je peux arriver a la lettre n a partir de 14.
    merci les gars.(les filles aussi).
    essaie : printf("%c",14);

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par baguinga Voir le message
    bonjour
    j<ai une question a propos du code ascii.
    je dois afficher un caractere a partir de son code ascii.
    disons que je travaille sur 5 bit et j<ai le nombre suivant : 01110
    je fait les clacul :
    0*(2 ^ 4) + 1*( 2 ^ 3) + 1*( 2 ^ 2) + 1* (2 ^ 1) + 0* (2 ^0) = 14.
    le prof dit que 01110 = la lettre n .
    comment je peux arriver a la lettre n a partir de 14.
    merci les gars.(les filles aussi).
    Le code ASCII est sur 7 bits, pas sur 5. Il doit y avoir une erreur quelque part....

    Sur 5 bits, il y a le code Baudot utilisé dans les années 50/60 sur les Telex et les Teletypes...

    Pas de Wi-Fi à la maison : CPL

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par anas.eh Voir le message
    essaie : printf("%c",14);
    Ca ne va pas donner 'n', c'est sûr (ou alors, c'est une drôle de machine).
    Pas de Wi-Fi à la maison : CPL

  6. #6
    screetch
    Invité(e)
    Par défaut
    2 puissance 5 = 32 soit juste assez pour mettre les 26 lettres de l'alphabet
    n est la 14 eme lettre de l'alphabet

    donc affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("%c", (char)(14+'A'-1));

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par screetch Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("%c", (char)(14+'A'-1));
    Le cast est inutile et faux. "%c" attend un int. 14+'A'-1 est déjà de type int.
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    merci pour toutes vos reponses mais il ny a aucune erreur je travail vraiment sur 5 bits, et dans le text de l<exo le prof donne un exemple :
    il encrypte le message : chaque lettre minuscule est : 0 et chaque majuscule : 1 . et il travaille sur 5 bits donc il ignore les espaces et il en ajoute un apres 5 bits :

    Exemple : le message secret: vOUS poUVEZ vENIr se transcrit en 01110 01111 01110 soit non.
    donc ma question etait : comment arriver au mot non sur 5 bits.

    j<ai pense a faire un enum lettre{ a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}, et 14 est vraiment un N, sauf que je ne vois pas comment afficher le N a partir du enum.

  9. #9
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    tu n'as pas besoin d'utiliser une énumération pour cela.

    - Tu découpes ton message par tranche de 5 bits (via un masque binaire : opérateur "et" : &)

    - Pour chaque tranche, tu utilise un tableau de correspondance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char lettre_min[] = { a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z};
    En oubliant pas que le tableau est indexé sur 0 (donc par exemple : lettre_min[13] == 'n').

    Tu peux faire deux tableaux (lettre_min et lettre_maj) et utiliser le bon tableau en testant le MSB (bit de poid fort, qui si j'ai bien compris donne soit majuscule, soit minuscule) de chaque lettre représentée sur 5 bits. Ou si tu souhaites aller à l'économie, utiliser la fonction toupper().

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    merci beaucoup ca fonctionne tres bien sur 5 bits .
    sur 7 bits c plutot facile : j<affiche directement la valeur.
    mais derniere question :
    sur 8 bits je fais comment ??? je pense qu<un tableau serait trop long a faire .??
    merci encore

  11. #11
    screetch
    Invité(e)
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Le cast est inutile et faux. "%c" attend un int. 14+'A'-1 est déjà de type int.
    ce n'est pas faux, c'est inutile. printf va promouvoir les parametres en int.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/10/2014, 17h00
  2. [Débutant] Avoir le son d'un caractére à partir de son code ASCII
    Par chems007 dans le forum MATLAB
    Réponses: 1
    Dernier message: 01/02/2013, 16h30
  3. Afficher une image a partir de son code en base64
    Par Jérémy Lefevre dans le forum Android
    Réponses: 5
    Dernier message: 12/10/2011, 08h49
  4. Insérer caractère par son code ASCII
    Par Ange44 dans le forum Mise en forme
    Réponses: 2
    Dernier message: 10/04/2007, 12h04
  5. Création d'une image à partir de son code binaire
    Par thefaycal dans le forum ASP
    Réponses: 11
    Dernier message: 18/05/2006, 17h39

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