kgabou Posted December 18, 2007 Share Posted December 18, 2007 Hello, J'ai un léger problême : Dans un TP on me demande d'écrire une fonction prenant en paramètre un flottant, et l'écrivant en binaire dans un fichier. Intuitivement j'ai fait : #include <stdio.h> #include <stdlib.h> void ecrireNombre(float *n); int main() { float a=0; printf("Quel nombre voulez-vous ecrire en binaire ?\n"); scanf("%f",&a); printf("n=%f\n",a); ecrireNombre(&a); scanf("%d"); } void ecrireNombre(float *a) { FILE *f; f=fopen("tp6.dat","wb"); // J'ouvre le fichier "TP6.dat" en écriture, en binaire. fprintf(f,"%f",*a); // J'y écris la valeur de a. fclose(f); } Et évidement, ça marche pas , il m'écrit le nombre en décimal. J'ai regardé plusieurs tutos mais je ne trouve rien là dessus, quelqu'un aurait-il une idée ? Link to comment Share on other sites More sharing options...
Barroud Posted December 18, 2007 Share Posted December 18, 2007 Utilise fwrite plutot que fprintf si tu veux écrire en binaire dans le fichier. Enfin, tout dépend si tu dois l'écrire en binaire dans le fichier ou en format binaire dans un fichier texte. Link to comment Share on other sites More sharing options...
m00t Posted December 18, 2007 Share Posted December 18, 2007 Si le but est d'avoir la représentation binaire d'un float, un bon exemple ici : http://www.thescripts.com/forum/thread169864.html Et il fonctionne a priori, ça me donne : 12.4 -> 01000001 01000110 01100110 01100110 -12.4 -> 11000001 01000110 01100110 01100110 Par contre pour l'algo, j'ai pas pris le temps de trop essayer de comprendre (en plus suis nul en maths pures), mais en gros on boucle 4 fois sur la méthode "char2Binary" (4 pour 4 octet dans un float) dans laquelle on décompose le paramètre passé en binaire. Après quelques tests, il se peut que l'affichage des 4 octets soient dans le mauvais sens : -12.4 -> 66 66 46 c1 en hexa -> 01100110 01100110 01000110 11000001 en binaire plutot. Maintenant je suis peut etre complètement à coté de la plaque et tu veux juste écrire un float dans un fichier binaire comme le dit Barroud Link to comment Share on other sites More sharing options...
kgabou Posted December 18, 2007 Author Share Posted December 18, 2007 Non non c'était bien ça m00t Merci à vous deux Link to comment Share on other sites More sharing options...
m00t Posted December 18, 2007 Share Posted December 18, 2007 Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.