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 :

Programme compilé en 32 bits ou 64 bits


Sujet :

C

  1. #21
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Si les valeurs décimales sont requises (résultat de division, par exemple) on utilise double.
    Je comprends ce que tu veux dire mais je trouve la formulation maladroite, les doubles ne fonctionnant generalement pas en decimal mais en binaire (de plus il y a une proposition pour ajouter des flottants decimaux qui s'appelleraient _Decimal*).

  2. #22
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Je comprends ce que tu veux dire mais je trouve la formulation maladroite, les doubles ne fonctionnant generalement pas en decimal mais en binaire (de plus il y a une proposition pour ajouter des flottants decimaux qui s'appelleraient _Decimal*).
    mais les nombres décimaux n'existent pas dans les ordinateurs. Ils ne sont que la traduction d'une représentation binaire. Le type double est juste très pratique pour représenter le résultat d'une division non-euclidienne 1/2 par exemple =0.5, ce qui ne correspond pas au type entier.

  3. #23
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par kromartien
    La portabilité demande de prendre en compte beaucoup d'architecture pour lesquelles le langage C ne défini pas les types calculatoire long double et long int de la même manière.
    Et alors? Je ne comprends pas ton probleme.

    Mais modifier l'architecture cible de la compilation ne doit en rien modifier la sortie du compilateur
    J'espere bien que si, sinon, a quoi ca servirait?

    Faire un source portable sur toutes les architectures demande en tout cas une bonne connaissance du C.
    C'est certain.

  4. #24
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par kromartien
    mais les nombres décimaux n'existent pas dans les ordinateurs.
    Mais si. Recherche BCD, Voir aussi http://www.open-std.org/jtc1/sc22/wg...docs/n1201.pdf
    (c'est pour un TR, pas une proposition pour inclusion dans la norme comme je le pensais; ca ne m'etonnerait pas que ca reviennent en proposition pour inclusion dans la norme puisqu'il y a l'air d'avoir une revision en projet).

  5. #25
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Je comprends ce que tu veux dire mais je trouve la formulation maladroite,<...>
    J'ai corrigé...

  6. #26
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Mais si. Recherche BCD, Voir aussi http://www.open-std.org/jtc1/sc22/wg...docs/n1201.pdf
    (c'est pour un TR, pas une proposition pour inclusion dans la norme comme je le pensais; ca ne m'etonnerait pas que ca reviennent en proposition pour inclusion dans la norme puisqu'il y a l'air d'avoir une revision en projet).
    Tu ne confonds pas avec les nombres réels à virgule fixes ?

  7. #27
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut
    quand je dis ne dois pas modifier la sortie du compilateur, je parle des messages d'erreur et des warnings. Le programme compilé va être différent c'est certain. À ce propos, j'ai pu remarquer que les programmes compilés pour AMD64 sont parfois plus volumineux que ceux compilés pour 386.

    Ma difficulté, c'est de comprendre l'utilité d'un processeur 64 bits face au processeur 32 bits. Est ce que la seule différence entre les programmes se situe dans le codage des types définis par GCC définis pour chaque architecture, si oui comment le programmeur s'en sort-il et est-ce quil doit prévoir l'architecture de ses programmes en fonction de celle des processeurs, ou est ce que c'est le compilateur seul qui prend en compte les optimisations en fonction des jeux d'instructions machine de chacun des processeurs cible ?

  8. #28
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 400
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    J'ai corrigé...
    Sauf que ce ne sont pas des réels non plus, car trop sont non-représentables. On pourrait parler de réels si on avait du calcul formel, mais il n'y a ici que des nombres à virgule, ou nombres non-entiers, etc. écrits généralements dans un format avec mantisse et exposant.

    (l'expression "à virgule flottante", elle, je ne sais pas exactement ce qu'elle désigne).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #29
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 400
    Par défaut
    Citation Envoyé par kromartien
    Ma difficulté, c'est de comprendre l'utilité d'un processeur 64 bits face au processeur 32 bits. Est ce que la seule différence entre les programmes se situe dans le codage des types définis par GCC définis pour chaque architecture, <snip>.
    Il y a plusieurs différences, notamment car le bus de données n'est pas le seul à passer à 64 bits: Le bus d'adresse aussi est agrandi, permettant le traitement de données plus volumineuses directement en mémoire.

    Ensuite, en effet le processeur peut mettre à disposition des instructions plus complexes, ou avoir la possibilité de faire deux opérations simultanément. Selon le type de processeur, cela peut être déterminé matériellement à l'exécution ou logiciellement à la compilation (la seconde solution permettant une meilleure optimisation car le compilateur peut mieux prévoir le futur que le matériel).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #30
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Tu ne confonds pas avec les nombres réels à virgule fixes ?
    Avec du BCD on peut faire des virgules flottantes comme des virgules fixes.

    n1201 concerne des nombres en virgules flottantes decimaux.

  11. #31
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Médinoc
    (l'expression "à virgule flottante", elle, je ne sais pas exactement ce qu'elle désigne).
    C'est ce que tu appelles mantisse et exposant. Mantisse dans ce contexte est impropre mais tres courant, quelque part entre la mode condamnee par l'academie et l'usage (*)

    Il y a plusieurs formats pour representer des approximations de reels.

    On parle de virgule fixe quand on les represente par un rationnel au denominateur fixe (les denominateurs populaires sont les puissances de 2 et de 10).

    On peut reserver quelques bits pour indiquer le denominateur. Si le denominateur est represente par un nombre qui sert d'exposant a 2 ou a 10, on parle de virgule flottante.

    Si on part du cote de la theorie de erreurs, la virgule fixe permet de representer les nombres avec une borne connue sur erreur absolue. Les representations en virgules flottantes permettent elle d'avoir une borne connue sur l'erreur relative. On aurait une meilleure borne sur celle-ci (pour un nombre fixe de bits dans la representation) en representant les nombres par leur logarithme (en virgule fixe), mais ca pose des problemes d'efficacites d'implementation. Pour des calcules sur des plages plus importantes, on a deja utilise le logarithme du logarithme.

    (*)Quand une faute de français est commise par...
    0,01 % des gens, c'est une coquille
    0,10 % des gens, c'est une distraction
    1,00 % des gens, c'est une faute
    10,00 % des gens, c'est un barbarisme néologique
    20,00 % des gens, c'est un googlisme peu recommandable
    40,00 % des gens, c'est d'un registre relâché
    60,00 % des gens, c'est une exception à la règle
    80,00 % des gens, c'est une mode condamnée par l'Académie
    100,00 % des gens, c'est l'usage
    80,00 % des gens, c'est écrit dans le dico
    60,00 % des gens, c'est un règle (avec des exceptions)
    40,00 % des gens, c'est un ringardisme
    20,00 % des gens, c'est recommandé par l'Académie
    10,00 % des gens, c'est d'un charme vieillot
    1,00 % des gens, c'est un archaïsme
    0,10 % des gens, c'est un anachronisme
    0,01 % des gens, c'est écrit dans le dico étymologique
    -- Jean Fontaine

Discussions similaires

  1. Faire tourner un programme 32 bits sous 64 bits
    Par rambc dans le forum Débuter
    Réponses: 7
    Dernier message: 01/03/2013, 01h32
  2. programme avec instruction MOVE et décalage de bit.
    Par jerdel dans le forum Automation
    Réponses: 4
    Dernier message: 17/01/2012, 15h38
  3. Réponses: 0
    Dernier message: 07/04/2011, 15h38
  4. [COMPILER] [MEX] compiler du C sous Vista 64 bits
    Par S4sha dans le forum MATLAB
    Réponses: 11
    Dernier message: 29/02/2008, 22h04
  5. compilation 64 bits sur 32 bits
    Par YéTeeh dans le forum C++
    Réponses: 8
    Dernier message: 05/01/2008, 18h26

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