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

Langage Delphi Discussion :

Isoler les 2 parties d'un Byte


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2003
    Messages : 19
    Points : 19
    Points
    19
    Par défaut Isoler les 2 parties d'un Byte
    Bonjour à tous,

    Dans un de mes programme je suis amené à récupérer la partie gauche et la partie droite d'un byte et voici ce que je fais :
    Pour récupérer la partie gauche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var B,G : Byte;
    G :=  B shr 4;
    Pour récupérer la partie droite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var B,D : Byte;
    D :=  B-((B shr 4) shl 4);
    donc si j'ai B=$C3
    je récupère G=$C et D=$3

    Je suis en train d'optimiser au maximum mon code pour qu'il s'exécute plus rapidement.
    Je ne pense pas qu'il y ait un moyen plus rapide (en temps de calcul cpu) de récupérer la partie gauche mais pour la partie droite je sais pas.
    A votre avis ?

    Merci,
    Bobby-B

  2. #2
    Membre actif
    Profil pro
    ----
    Inscrit en
    Mai 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ----

    Informations forums :
    Inscription : Mai 2004
    Messages : 185
    Points : 245
    Points
    245
    Par défaut
    Utilise la fonction and
    et c'est réglè

    15 est égal a 00001111 en binaire, et comme l'operation And ne place un bit a 1 que si les deux bit de même rang sont a 1, tu élimine tout les bit de poids fort (de gauche ) en métant a zero leurs equivalent

  3. #3
    Membre régulier Avatar de fs999
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 99
    Points : 111
    Points
    111
    Par défaut
    Salut,

    Voilà.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var
      B, G, D: Byte;
    begin
      B := $C3;
      G := B shr 4;
      D := B and $F;
      ShowMessage('G:$'+IntToHex(G, 1)+#13+'D:$'+IntToHex(D, 1));
    end;
    A+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2003
    Messages : 19
    Points : 19
    Points
    19
    Par défaut
    Merci tous les 2 pour vos réponses.
    Je me doutais bien qu'il y avait plus simple

    Bobby-B

  5. #5
    Membre actif
    Profil pro
    ----
    Inscrit en
    Mai 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ----

    Informations forums :
    Inscription : Mai 2004
    Messages : 185
    Points : 245
    Points
    245
    Par défaut
    Je te recommande de bien apprendre les opération logique ainsi que leur utilité... la plupart des optimisation passe par une bonne connaissance du Boolean
    Bonne continuation @you

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

Discussions similaires

  1. [Free Pascal] Stocker des sous-parties d'une chaîne : isoler les paramètres d'une commande
    Par eldoir dans le forum Free Pascal
    Réponses: 3
    Dernier message: 07/03/2012, 05h23
  2. isoler les données de la partie graphique
    Par samplaid dans le forum Langage
    Réponses: 3
    Dernier message: 01/11/2008, 13h13
  3. [AJAX] Isoler les éléments de "xhr.responseText" ?!
    Par ghohm dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/09/2006, 15h00
  4. [CSV] Comment isoler les différents champs
    Par Death83 dans le forum Langage
    Réponses: 4
    Dernier message: 25/08/2006, 21h00

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