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 :

Regrouper deux caractères pour n'en former qu'un


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut Regrouper deux caractères pour n'en former qu'un
    Bonjour

    Je cherche a mettre à la suite 2 octets venant d'une table, chacun contient 4 bits en BCD.

    Mon but et de regrouper l'octet et le stocker dans une chaine de caractere :

    partie1[0] = '0b1111';
    partie2[1] = '0b0000';

    pour obtenir :
    char resultat;
    -->
    resultat = '0b00001111';

    Faut il faire un masque ou faire << 4 ?

    Je ne suis pas très à l'aise pourriez vous me montrer comment faire svp ?
    Merci de votre aide,

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Décalage et masque (ou logique) sont les solutions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = (partie2[1] << 4) | partie1[0] ;
    et même pour plus de sécurité (des fois qu'il y aurait des bits en trop qui trainent).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = ((partie2[1] & 0x0f) << 4) | (partie1[0] & 0x0f);
    Par contre je me pose des questions sur ton énoncé. partie[0] et partie[1] sont bien des nombres qui représentent les valeurs que tu as mis sous forme de string ? Sinon, ce que je te propose ne va pas fonctionner.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Il faut faire un << 4 ensuite un masque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    unsigned char partie1 = 0x0F; // 1111
    unsigned char partie2 = 0x08; // 1000
    unsigned char resultat = (partie2 << 4) | partie1; // 10001111
    Ici | partie1 peut également être remplacé par + partie1.
    Utiliser unsigned quand on veut faire des manipulations de bit est une bonne pratique car le résultat de l'opération >> sur un signed varie selon l'implémentation.

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut
    Merci beaucoup.

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

Discussions similaires

  1. [WD14] Regrouper deux images pour impression PDF
    Par AUZUR dans le forum WinDev
    Réponses: 13
    Dernier message: 25/09/2009, 15h59
  2. Regrouper deux requetes pour faire une vue
    Par shaun_the_sheep dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/04/2009, 17h38
  3. regrouper deux cellules pour ne faire qu'une.
    Par vinssieux dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/05/2008, 13h52
  4. Réponses: 6
    Dernier message: 30/07/2007, 12h17
  5. Concaténation de deux integer pour former une clé primaire
    Par stoukou dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 08/09/2005, 10h34

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