Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2650 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  demande d'aide pour operation en virgule fixe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

demande d'aide pour operation en virgule fixe

n°1701938
Strblast
Posté le 13-03-2008 à 17:44:04  profilanswer
 

Bonjour,
Question de noob (que je suis ;) ).  
1)Lorsque l'on parle de représentation en virgule fixe , c'est uniquement pour des nombres à virgule???
2)Et est-ce que je peux utiliser la methode de représentation en virgule fixe pour le nombre -58.984375(10)?? sachant que l'on reserve 20 bits pour la partie entiere et 12 bits pour la partie fractionnaire.
Par contre pour une complementation à 2, je dois aussi inverser les bits qui sont derriere la virgule?
En vous remerciant par avance de votre aide et de votre comprehension ;)

mood
Publicité
Posté le 13-03-2008 à 17:44:04  profilanswer
 

n°1702234
MagicBuzz
Posté le 14-03-2008 à 11:00:14  profilanswer
 

Si tu commences à parler en "bits" au lieu de "chiffres", alors clairement tu travailles pas en virgule fixe.
 
Justement, les calculs en virgule fixe, on fait abstraction de la représentation binaire et on ne travaille qu'avec une précision fixe, en terme de chiffres.
 
Ce qui permet de faire ça :
 
(11.1 / 10) * 10 = 11
 
Si on travaille en virgule fixe avec un chiffre significatif.
 
Après, rien ne t'empêche de travailler avec 20 chiffres significatifs en virgule fixe, mais tu sais que tout calcul fait sur ces 20 chiffres sera absolument exact (pas d'approche comme avec le float par exemple) et que tout calcul nécessitant plus de 20 chiffres significatifs sera arrondi afin de ne travailler qu'avec 20 chiffres.
 
En gros, tu travailles sur un ensemble de valeurs déterminés où chaque valeur est énumérable, et tu ne peux pas sortir de cet ensemble, même pour des calculs intermédiaires.
 
Imagine simplement que tu travailles uniquement avec des INT, que du divise par une puissance de 10 juste pour l'affichage.
 
Pour les nombres entiers ça marche tout pareil, c'est juste que tu bosses avec des entiers. Donc 10^99 + 1 <> 10^99 par exemple, ce qui ne sera pas toujours le cas avec une représentation en virgule flottante.


Message édité par MagicBuzz le 14-03-2008 à 11:11:32
n°1702264
Joel F
Real men use unique_ptr
Posté le 14-03-2008 à 11:18:21  profilanswer
 

euh sauf que non MagicBuzz :|
 
Les bits à gauche de la virgule représentent la partie entière du nombre (au vrai sens du terme), c'est-à-dire l'entier se trouvant à gauche de la virgule. Chaque bit à droite de la virgule, ou « décimale binaire », correspond à l'inverse d'une puissance de 2. Ainsi la première décimale binaire est ½, la seconde est ¼, la troisième est 1/8 et ainsi de suite. Pour un nombre en virgule fixe dans un format de complément à deux, la borne maximale est : 2^{e-1}-\frac{1}{2^f} et la borne minimale est − 2e − 1 où e correspond au nombre de bits de la partie entière et f au nombre de bits de la partie fractionnaire.
 
Donc non, on ne fais pas abstraction de la représentation binaire ... Au contraire ...

n°1702462
MagicBuzz
Posté le 14-03-2008 à 15:13:32  profilanswer
 

Joel F a écrit :

euh sauf que non MagicBuzz :|
 
Les bits à gauche de la virgule représentent la partie entière du nombre (au vrai sens du terme), c'est-à-dire l'entier se trouvant à gauche de la virgule. Chaque bit à droite de la virgule, ou « décimale binaire », correspond à l'inverse d'une puissance de 2. Ainsi la première décimale binaire est ½, la seconde est ¼, la troisième est 1/8 et ainsi de suite. Pour un nombre en virgule fixe dans un format de complément à deux, la borne maximale est : 2^{e-1}-\frac{1}{2^f} et la borne minimale est − 2e − 1 où e correspond au nombre de bits de la partie entière et f au nombre de bits de la partie fractionnaire.
 
Donc non, on ne fais pas abstraction de la représentation binaire ... Au contraire ...


ah, désolé :/
 
je suis trop pollué par le type "decimal" du SQL, qui bosse par contre en chiffres, sur un nombre de bits variables justement

n°1703489
Strblast
Posté le 17-03-2008 à 15:45:15  profilanswer
 

Merci à tous pour ces précisions ;)

n°1703505
MagicBuzz
Posté le 17-03-2008 à 16:00:29  profilanswer
 

oublie les miennes, et regarde celles de joel, moi gt à côté de la plaque ;)

n°1703555
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-03-2008 à 16:56:42  profilanswer
 

strblast >> comme je t'ai TT pour une semaine sur l'autre topic, tu auras le temps de lire ceci :o
http://forum.hardware.fr/hfr/Progr [...] tm#t537664

n°1703566
MagicBuzz
Posté le 17-03-2008 à 17:09:54  profilanswer
 

Comment c'est limpide ton explication :love:
 
Par contre, j'ai une question stupide (ouais, je sais, je suis le roi des questions stupides :sol:
 
Imaginons que pour travailler en 3D, j'ai décidé d'utiliser deux types de virgules fixes :
> t1 avec une précision de 8 bits, histoire de localiser les corrodonnées des textures sur mes vertices.
> t2 avec une précision de 16 bits, histoire de localiser mes vertices dans l'espace.
 
Et maintenant, dans le cadre d'une transformation, je vais avoir besoin de mélanger les calculs des deux types.
 
Pour faire des calculs hétérogènes, je dois passer mon type le moins précis vers mon type le plus précis avant de faire le calcul non ? Ou si faut faire autrement ?
 
Question subsidiaire : Maintenant que les processeurs ont tous des FPU, et qu'elles sont devenu très performantes, et que les GPU travaillent aussi en virgule flottante, y a-t-il encore un intérêt particulier à travailler avec ce genre de tricks ? Les calculs/tests supplémentaires nécessaires ne sont-ils du coup pas plus consommateur que de travailler directement en float ? Genre, avec DirectX, maintenant, même pour la 2D, on ne peut travailler qu'en float (sur 32 bits).


Message édité par MagicBuzz le 17-03-2008 à 17:14:41
n°1703695
Joel F
Real men use unique_ptr
Posté le 17-03-2008 à 21:25:15  profilanswer
 

dasn le cadre de FPGA ou de System on Chip, c'est interessant car moins couteux en conso electrique


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  demande d'aide pour operation en virgule fixe

 

Sujets relatifs
[AIDE] Mettre son logo sur plusieurs photos en même temps ?exo d'algo aide s'il vous pait
Une image, decoupé en 9, puzzle => besoin d'aide :)Demande d'aide pour menu dropdown javascript
Complétion automatique en JS/AJAX ? (demande conseils)[Web]Demande d'avis sur déploiement frontal web
[RESOLU] aide pour une requête toute simpleAide Script PHP
besoin d'aide pour associer les touches clavier 
Plus de sujets relatifs à : demande d'aide pour operation en virgule fixe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR