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 :

Type Endian du microprocesseur du PC


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Points : 62
    Points
    62
    Par défaut Type Endian du microprocesseur du PC
    Bonjour à tous !

    J'aurais voulu savoir si, en Delphi, il existait une fonction qui permettrait
    de connaître le type de terminologie du microprocesseur du PC (savoir si c'est du Little Endian, du Big Endian ou autre)...

    S'il n'existe pas de fonction permettant de faire ça, est-ce que quelqu'un aurait une astuce pour trouver facilement sans trop se casser la tête ?

    Je vous remercie !

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    processeur x86 : little endian
    processeur motorola 68000/SPARC/IBM 370 : big endian
    processeur PowerPC/ARM/DECa/MIPS/RISC/IA64 : bi-endian
    processeur PDP11 : middle endian
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Points : 62
    Points
    62
    Par défaut
    D'accord, merci.

    Mais, y'a-t-il un moyen de le détecter avec delphi ?
    (il faut que je puisse le détecter avec un bout de code car mon programme
    ne fonctionnera pas de la même manière en fonction de l'endian...)

    Merci en tous cas !

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 522
    Points : 25 052
    Points
    25 052
    Par défaut
    Windows et Delphi ne fonctionnant que sur du Little Endian (x86 en général), la réponse est vite trouvée !
    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

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Points : 62
    Points
    62
    Par défaut
    Merci beaucoup ! La pour le coup, ça me facilite la vie c'est c'est du Little dès qu'il y a Windows !

  6. #6
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    test simple :

    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
     
    type
      TEndianess = (eUnknown = 0, eLittle, eBig);
     
    function GetEndianess: TEndianess;
    var
      R32 : packed record case integer of
        0: (L : LongWord);
        1: (B : array[0..3] of byte);
      end;
    begin
      result := eUnknown;
      R32.L := 1;
      if R32.B[0] = 1 then
        result := eLittle
      else
      if R32.B[3] = 1 then
        result := eBig;
    end;
     
     
    begin
        case GetEndianess of
          eLittle  : writeln('Little endian');
          eBig     : writeln('Big endian');
          eUnknown : writeln('Unknown endianess');
        end;
     
        readln;
    end.

    mais :

    Delphi ne tourne que sur x86.
    Un programme compilé x86 ne peu tourner sur un processeur non x86
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Points : 62
    Points
    62
    Par défaut
    Merci pour tout !

    Avec toutes ces infos, je devrais arriver à me débrouiller !

    Encore merci !

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

Discussions similaires

  1. programmation corba: le type "sequence"
    Par Kali dans le forum CORBA
    Réponses: 4
    Dernier message: 28/08/2005, 16h09
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. Réponses: 2
    Dernier message: 05/06/2002, 12h29
  4. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36

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