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 :

Chiffre a Virgule Fixe


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Chiffre a Virgule Fixe
    Hi.

    J'aimerai savoir comment on fait pour créer des chiffres a virgules fixe, qui, dit on, sont plus rapides que les chiffres a virgule flottante. Je sais qu'en C++ il existe le type fixed, mais comme je suis en C, j'aimerai savoir comment on fait en C !

    deuxieme question :

    ca veut dire quoi ca ? :
    int x,y=5;
    x=y<<8 <-------- cette ligne.

    que vauit la valeur x une fois effectué ce decalage ?

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 6
    Points : 7
    Points
    7
    Par défaut glop
    Je crois que DJGPP permet d'utiliser les variables de type fixe. A moins que ça ne soit la librairie Allegro...


    Pour ce qui de ton écriture barbare, ça correspond à un décalage binaire vers la gauche.

    5(base 10)=00000101(base 2)

    si tu décales de 8 vers la gauche, ça donne:
    00000101 00000000(base 2) = 255 * 5(base 10) je crois... cad plein

  3. #3
    Membre émérite

    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2002
    Messages : 255
    Points : 2 717
    Points
    2 717
    Par défaut
    Un chiffre c'est 0,1,2,...,9.
    Un nombre est une suite de chiffre (avec une virgule si on veut ;-)

    Tu parle de notation où le nombre de décimales est fixe, et on stocke l'ensemble dans des nombres entiers car le calcul sur des entiers est bien plus rapide que sur des flottants (appel au coprocesseur arithmétique, faut jouer avec ses registres, ça prend + de temps). Tu fixes par exemples 8 bits pour la partie décimale, reste x-8 bits pour la partie entière, on va dire que x=32 pour un long sur un Intel x86-32 bits.

    Ex: 5.9 = 101 virgule 1001 sera stocké "101 00001001" (avec des zéros devant), on calcule ça en faisant : 5*256 +9. Or *256 s'optimise bien avec le décalage binaire car 256=2^8 -> 5 << 8 (multiplié par 2^8).

    Après faut tout reprogrammer : somme,différence,produit,division (balèze ça),puissance,et convertion vers -> float ou -> double.

    Ex: 4.0 -0.1 -> 3.9, mais en pratique ça donne
    (4 0) - (0 1) = (4 -1) ---> (3 9) quand on travaille en base 10 (chiffre entre 0 et 10-1=9)

    Viens faire un tour sur ma page des Grands nombres entiers, ça t'aidera :
    http://www.haypocalc.com/grandnbr/

    Et aussi voir les tutoriels et cours de C : http://c.developpez.com/cours/

    Allez @+ Haypo

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    merci bien !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/04/2006, 12h30
  2. problème d'arrondi à 2 chiffres après virgule
    Par nerick dans le forum Langage
    Réponses: 1
    Dernier message: 05/01/2006, 18h26
  3. PROBLEME : chiffre avec virgule dans MySQL
    Par cedre22 dans le forum Requêtes
    Réponses: 11
    Dernier message: 15/12/2005, 17h41
  4. Transformer un chiffre a virgule en int
    Par Battosaiii dans le forum C
    Réponses: 3
    Dernier message: 22/11/2005, 14h30
  5. extraire 2 chiffres après virgule ?
    Par nerick dans le forum C
    Réponses: 2
    Dernier message: 13/12/2002, 18h10

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