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 :

Compréhension de code


Sujet :

Langage Delphi

  1. #1
    Membre éclairé Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 621
    Par défaut Compréhension de code
    Bonjour à tous,

    J'ai un constructeur qui m'a envoyé un code avec un fichier de constante.
    Je dois traduire ce fichier pour un autre langage mais je ne comprend pas la syntaxe de ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            PRV_OCR				= $D0400000;
    	PRV_OCRROWLIST		= PRV_OCR or 1;
    	PRV_OCRROW			= PRV_OCR or 2;
    	PRV_OCRCHAR			= PRV_OCR or 3;
    PRV_OCR contient des données en hexadécimal mais ensuite je ne comprend pas le "or" qui n'est pas un "ou" logique.

    Quand je trace les valeurs voici ce que j'obtiens :
    PRV_OCRROWLIST = -801112063
    PRV_OCRROW = -801112062
    PRV_OCRCHAR = -805306365

    Merci bien.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 071
    Par défaut
    En fait, le terme "logique" n'est pas toujours très logique (ah ah ah ), car selon les langages ça change !

    C++. . . . . . . . . . . . => Delphi
    Opérateurs logiques . => Opérateurs Booléens
    Opérateurs bit à bit . => Opérateurs logiques (bit-à-bit)

    En Delphi, il faut dire "opérateur booléen" ou "opérateur bit à bit"

    or, c'est le ou binaire bit à bit, ça ce comprend mieux en binaire qu'en décimal ou hexa
    bit à bit, en C, c'est le simple |
    booléen en C, c'est un double ||
    en delphi, il se débrouille pour savoir quel or utilisé

    $80000000 . . . . . . . . . . . . . . . . . = 10000000000000000000000000000000b = -2147483648 = - (2^31)
    $D0000003 . . . . . . . . . . . . . . . . . = 11010000000000000000000000000011b = -805306365
    $D0400000 . . . . . . . . . . . . . . . . . = 11010000010000000000000000000000b = -801112064
    $D0400000 or 1 = $D0400000 or 01b = 11010000010000000000000000000001b = -801112063 = $D0400001
    $D0400000 or 2 = $D0400000 or 10b = 11010000010000000000000000000010b = -801112062 = $D0400002
    $D0400000 or 3 = $D0400000 or 11b = 11010000010000000000000000000011b = -801112061 = $D0400003
    $FFFFFFFF . . . . . . . . . . . . . . . . . = 11111111111111111111111111111111b = -1
    $7FFFFFFF . . . . . . . . . . . . . . . . . = 01111111111111111111111111111111b = 2147483647 = 2^31 - 1



    Tu notes que comprendre les entiers 32bits signés, c'est une vrai galère,
    D'ailleurs pour PRV_OCRCHAR ça devrait être -801112061 et non -805306365

    On pourrait presque dire dans ce cas, ton or est l'équivalent d'un + pour les valeurs 1 à FFFFF
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. compréhension de code en asp
    Par bidule123456 dans le forum ASP
    Réponses: 1
    Dernier message: 21/08/2007, 11h12
  2. compréhension de code (passage à une autre page)
    Par kokokaine dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/05/2007, 11h02
  3. Réponses: 3
    Dernier message: 12/01/2007, 09h42
  4. [VB-Access]recset! Pb de compréhension de code
    Par sk8bcn dans le forum VBA Access
    Réponses: 5
    Dernier message: 15/12/2006, 15h26
  5. Compréhension du code
    Par Ivanelis dans le forum Assembleur
    Réponses: 3
    Dernier message: 12/06/2006, 12h08

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