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

  FORUM HardWare.fr
  Programmation
  C

  j'ai besoin des programmeurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

j'ai besoin des programmeurs

n°2185674
x-info
Posté le 12-04-2013 à 19:43:34  profilanswer
 

Bonjour tout le monde ,
j'ai besoin de votre aides en programmation
je veux faire un programme qui convertit un nombre décimal avec la virgule en hexadécimal mais avec la norme IEEE 754
 
http://fr.wikipedia.org/wiki/IEEE_754
 
j'ai aucun idée par quoi je commence si vous pouvez m'aider je vous remercie
Merci pour tous

mood
Publicité
Posté le 12-04-2013 à 19:43:34  profilanswer
 

n°2185677
tpierron
Posté le 12-04-2013 à 20:19:31  profilanswer
 

Mouais, si tu es débutant dans ce domaine, tu vas te prendre une douche froide: dépendemment de la qualité de conversion que tu veuilles, le code peux devenir extrêmement imbitable.
 
L'implémentation de référence dans ce domaine s'appelle "dtoa.c", tu peux voir le code source ici :
 
http://www.netlib.org/fp/dtoa.c
 
Le premier truc qui saute aux yeux, c'est que c'est moche. Même en virant les trucs obsolète (genre prototypes pré-c89), ça reste difficilement bitable. Déjà ce code contient 2 fonctions publiques (ouais, ça saute pas aux yeux) : strtod (ce que tu dois chercher) et dtoa (la réciproque de strtod, donc, en général utilisé par la fonction printf()). Pourquoi est-ce si compliqué ? Parce qu'il y a une tétrachiée de cas spécifiques (NaN, Infinity, flottant non normalisé, type d'arrondi) et si tu veux vraiment bien faire les choses, à savoir, garantir que ta chaine de caractère sera convertie en la plus proche valeur permise par le type (float ou double), bah, ça devient très vite le bordel.
 
Sinon, il existe des implémentations de strtod un peu moins complète que dtoa(), et leur code est en général un peu plus bitable.

n°2185696
x-info
Posté le 13-04-2013 à 00:27:58  profilanswer
 

non c'est pas ça ce que je veux :/

n°2186315
Sve@r
Posté le 17-04-2013 à 21:48:16  profilanswer
 

x-info a écrit :

Bonjour tout le monde ,


Salut

x-info a écrit :

je veux faire un programme qui convertit un nombre décimal avec la virgule


Oui parce qu'un nombre décimal sans virgule c'est plus un décimal c'est un entier...

x-info a écrit :

en hexadécimal mais avec la norme IEEE 754


Je ne comprends pas trop en quoi la représentation binaire des nombres à virgule flottante interviendra dans le fait que 123 deviendra 0x7B...
 

x-info a écrit :

j'ai aucun idée par quoi je commence si vous pouvez m'aider je vous remercie


Bah, commence par une fonction qui convertit un entier en hexa (123 => 7B). Facile, suffit de diviser par 16.
Ensuite une autre qui convertit une partie fractionnaire en hexa (0.123 => 0.1F72B). Facile, suffit de multiplier par 16.
 
Et enfin tu concatènes les deux...


Message édité par Sve@r le 17-04-2013 à 21:49:00

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

  j'ai besoin des programmeurs

 

Sujets relatifs
Besoin d'aide pour Filtre ExcelBesoin d'aide en COMBINAISON
J'ai vraiment besoin d'aide ! C'est urgent !Besoin d'aide Script PHP/SQL
Besoin d'aide pour faire un batch de téléchargementCréation d'une action en VBA Excel - Besoin d'aide
Messieurs les programmeurs, j'ai besoin de vous !besoin de programmeurs php pour m'aider sur un projet tout simple
Plus de sujets relatifs à : j'ai besoin des programmeurs


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