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 :

Affichage du code ascii sur 8 bits


Sujet :

C

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Par défaut Affichage du code ascii sur 8 bits
    bonjour, d'abord merci bcp pour l'aide trouvee ce ce site ...
    voila mon bleme:
    j'ai une representation binaire d'un caractere sur 8 bits et jaimerais l'afficher, comment faire ?
    par exemple j'ai : 01100110 comment je peux afficher le caractere qui correspond ?

    je fait la conversion : 1*(2^6)+1*(2^5)+1*(2^2)+1*(2^1) = 102.

    si je fait : pritf("%c", 102) ca c'est en base 7.(je pense)

    donc voila ma question.

  2. #2
    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 : 48
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Je ne sais pas si c'est exactement ce que tu recherches, mais j'ai ça sous la main. Pose des questions si tu ne comprends pas (et adapte-le à tes besoins):

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <limits.h>
     
    unsigned char binary_to_ul(char const *bin, int *error);
     
    int main(void)
    {
        int err = 0;
        int ret = EXIT_SUCCESS;
        int c = (int) binary_to_ul("01100110", &err);
     
        if (err == 0)
        {
            printf("Le caractère correspondant est: %c (%d)\n", c, c);
        }
        else
        {
            fprintf(stderr, "Erreur: %d\n", err);
            ret = EXIT_FAILURE;
        }
        return ret;
    }
     
    unsigned char binary_to_ul(char const *bin, int *error)
    {
        unsigned long ret = 0;
        int err = 0;
     
        if (bin != NULL)
        {
            size_t const max_bits = sizeof ret * CHAR_BIT;
     
            if (strlen(bin) <= max_bits)
            {
                char const *p = bin;
     
                for (p = bin; *p != 0; p++)
                {
                    switch (*p)
                    {
                        case '1':
                            ret = (ret << 1) + 1;
                            break;
     
                        case '0':
                            ret = (ret << 1);
                            break;
     
                        default:
                            err = 3;
                            break;
                    }
                }
            }
            else
            {
                /* Erreur: la chaine est trop longue*/
                err = 2;
            }
        }
        else
        {
            /* Erreur: argument invalide*/
            err = 1;
        }
     
        if (error != NULL)
        {
            *error = err;
        }
     
        return ret;
    }
    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++

    +

  3. #3
    screetch
    Invité(e)
    Par défaut
    Citation Envoyé par wikipedia
    L'ASCII définit 128 caractères numérotés de 0 à 127 et codés en binaire de 0000000 à 1111111. Sept bits suffisent donc pour représenter un caractère codé en ASCII. Toutefois, les ordinateurs travaillant presque tous sur huit bits (un octet) depuis les années 1970, chaque caractère d'un texte en ASCII est stocké dans un octet dont le 8e bit est 0.
    donc ton code doit etre correct. l'ASCII est a la base une table sur 7 bits.

    [edit] le lien http://fr.wikipedia.org/wiki/ASCII

  4. #4
    Invité de passage
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 1
    Par défaut un essaie
    Salut

    j'ai fait un petit essaie , c un peu long mais tu compile et ca marche
    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
     
    #include <stdio.h>
    #include <string.h>
     
    #define LONGEURMAX 100
     
    int prendre_ligne( char s[] );
    void convertir( char s1[] );
    int puissance(int n, int x);
     
    char chaine[LONGEURMAX];
     
    int main( void )
    {
     
     while( prendre_ligne( chaine ) > 0 )
       convertir( chaine );
     
     return 0;
    }   
     
    int prendre_ligne( char s[] )
    {
     int c, i;
     
     i = 0;
     
     while( ( ( c = getchar() ) != EOF )  &&  c != '\n' )
       s[i++] = c;
     
     s[i] = '\0';
     
     return i;
    } 
     
     
    void convertir( char s1[] )
    {
     int i, exp, valeur;
     
     
     exp = valeur = 0;
     i = strlen( s1 ) -1;
     
     while( i >= 0 )
     {
      valeur += ( s1[i] - '0' ) * ( puissance( exp, 2 ) ); 
      --i;
      ++exp;
     }
     printf("%c \n", valeur );
     
    }
     
    int puissance(int n, int x)
    {
      int p = 1;
      while(n--) p *= x;
      return p;
    }
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. code barre sur n bits
    Par simpatico dans le forum Débuter
    Réponses: 3
    Dernier message: 12/07/2011, 18h06
  2. [Débutant] probleme afficher code ascii sur l'editeur de borland 5.02
    Par cesar333 dans le forum C++Builder
    Réponses: 1
    Dernier message: 09/09/2010, 14h47
  3. Forcer l'affichage d'une variable sur 8 bits
    Par teka_22 dans le forum Débuter
    Réponses: 2
    Dernier message: 07/05/2010, 15h08
  4. Affichage code Ascii avec SetDlgItemText
    Par cauriera dans le forum C++
    Réponses: 3
    Dernier message: 19/02/2007, 11h12
  5. affichage caractère à partir du code ascii
    Par capone dans le forum C++
    Réponses: 4
    Dernier message: 19/10/2005, 21h51

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