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 :

stockage d'une chaine de caractère dans un type uint8_t


Sujet :

C

  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Par défaut stockage d'une chaine de caractère dans un type uint8_t
    Bonjour,
    j'ai une chaine de carctère de taille entre 10 et 15 caractères (disins 12 caractères).
    Je voudrais savoir comment je peux stocker cette chaine dans un type uint8_t. Je ne veux pas stocker cette chaine dans un type char* parcequ'il occupe beacoup de place dans la mémoire.

    Merci pour votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    Bonjour,
    sur les plateformes classiques (win/linux/mac) sizeof(uint8_t)==sizeof(char). Tu ne gagneras donc rien du tout à utiliser l'un plus que l'autre.
    Au mieux, vu que tu utilises des caractères pour stocker des bases (c'est bien le terme ?) tu peux en mettre 4 par int8_t ou par char. Mais bon ça alourdit un peu le traitement.

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Par défaut
    Citation Envoyé par picodev Voir le message
    Bonjour,
    sur les plateformes classiques (win/linux/mac) sizeof(uint8_t)==sizeof(char). Tu ne gagneras donc rien du tout à utiliser l'un plus que l'autre.
    Au mieux, vu que tu utilises des caractères pour stocker des bases (c'est bien le terme ?) tu peux en mettre 4 par int8_t ou par char. Mais bon ça alourdit un peu le traitement.
    merci pour ton aide.
    est-ce que tu peux m'expliquer encore plus s'il vous plait? comment je peux mettre 4 par int8_t ou par char?

    Merci

  4. #4
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    Toujours sur les plateformes classiques : un char fait 8 bits. Tu as 4 bases ACGT, 2 bits te suffisent pour encoder une base → 00=A 01=C 10=G 11=T. Donc dans un char de 8 bits tu peux mettre 4 fois 2 bits, par exemple CGGA donne 01 10 10 00 soit l'octet 01101000 en binaire = 104 en décimal.

    En C il faut utiliser les opérateurs bits à bits pour extraire les données. En général on essaye d'éviter ça si on peut.

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Bonjour,

    Si la Tour Eiffel mesurait 3 cm, on pourrait la mettre en poche ...

    ... hélas, ce n'est pas le cas.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mido1951 Voir le message
    j'ai une chaine de caractère (disons 12 caractères). Je ne veux pas stocker cette chaine dans un type char* parcequ'il occupe beacoup de place dans la mémoire.
    Bonjour

    1x12 caractères = beaucoup de place ? C'est quoi le truc sur lequel tu programmes ?? Un nanorobot ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [VB]Recherche d'une chaine de caractère dans un fichier
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 26
    Dernier message: 16/02/2006, 09h10
  2. Ecriture d'une chaine de caractères dans un fichier
    Par fleur_de_rose dans le forum MFC
    Réponses: 6
    Dernier message: 10/02/2006, 09h34
  3. Récupérer une chaine de caractère dans une page
    Par BrunS dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2005, 14h28
  4. [String]Recherche d'une chaine de caractères dans une autre
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 3
    Dernier message: 29/07/2004, 11h51
  5. recherche d'une chaine de caractère dans une données text
    Par jdeheul dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 17/06/2004, 16h35

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