Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Conversion char* en float, et float en char* [ Algorithme / Compression, Split & Cryptage ] (MrAzerty)

vendredi 16 juin 2006 à 10:29:45 | Conversion char* en float, et float en char*

MrAzerty

Mon problème est simple, je souhaie pouvoir convertir une chaine de caractères contenant un réel ("78.46", par exemple),
à la norme IEEE 754 (comme les float) , et cela sans utiliser de float, ni de "%f", ni rien qui touche de près ou de loin au type float.
La valeur devra donc ensuite être mémorisée sur 32bits, dans un unsigned long par exemple.
Merci par avance pour votre aide...


vendredi 16 juin 2006 à 11:04:23 | Re : Conversion char* en float, et float en char*

ymca2003

Pourquoi tu veux pas te servir  float ? c'est pourtant plus simple :

#include <math.h>
char s[] = "78.46";
float val = (float)atof(s);

pour récuprer les 32 bits du format IEEE :
unsigned long ieee = *((long*)&val);

Si tu veux recoder atof, tu peux mais sans utiliser le type float c'est un brin compliqué


vendredi 16 juin 2006 à 18:18:15 | Re : Conversion char* en float, et float en char*

MrAzerty

En fait mon code ne sera pas compilé pour un pc mais pour un calculateur 16 bits (sc12). Le types float est mal géré par ce dernier, je me suis rendu compte que de nombreux dépassements mémoires aparaissaient, dus à cette mauvaise gestion... En rendant une visite sur le site web du constructeur (et en cherchant quelques heures), je me suis aperçu qu'il existaient une solution, mais non apliquable au C++ pour des raisons trop longues à expliquer (pointeurs sur des fonctions C,etc).
Or, les données doivent impérativement être stockées au format IEEE 754, car le programme comunique en liaison série avec un esclave Modbus, utilisant cette norme.

Donc, je résume:
-Impossiblilité d'utiliser le type float, ni les "atof()" sous peine de dépassement mémoire et donc de plantage aléatoire
-Nécéssité de stocker quand même les données au format IEEE 754

J'ai éssayé de faire un algorithme à partir d'explications, comme celles-ci .
Cela me parait extrêmement compliqué, dans mon cas...

J'ai tout de même réussi à compiler une version stable, utilisant les floats. Ce projet sera présenté à un jury dans le cadre de mon bts très prochainement, je pense que je vais m'en tenir à cette version.






samedi 17 juin 2006 à 12:13:14 | Re : Conversion char* en float, et float en char*

deck_bsd

Membre Club
utilise ssprintf ou sscanf si libc standart,  ou wsprintf  si win32.

samedi 17 juin 2006 à 12:13:33 | Re : Conversion char* en float, et float en char*


Cette discussion est classé dans : conversion, exemple, char, float


Répondre à ce message

Sujets en rapport avec ce message

Conversion de donnée [ par Johjo ] Salut tout le monde, je cherche à convertir une valeur char en valeur float et inversement de float en char. L'equivalent de Val et Str en basic.Merci conversion float en char [ par laurent180 ] Bonjour a tous,J'aimerai savoir en c ou c++ comment convertir un float en char? quel sont les fonctions ou un exemple?merci a vous.s Conversion de unsigned char en float (17.6E) [ par lemenager ] Bonjour,Je dois lire un fichier binaire dans lequel il y a des float en format (17.6E). J'ai l'impression que je suis oblige de les lires en unsigned conversion char to float et inversement [ par izle ] IzLe,je souhaite convertir des "float" en char afin de les afficher dans une bare d'état, existe-t-il une fonction qui fait ça? Conversion type float to char [ par Ricool ] Salut a tousvoila j'ai un probleme de conversion de typej'ai un prog avec client - serveur, le client envoi des chiffre au serveur, celui ci calcul un conversion cstring en char [ par champista ] Bonsoir,j'ai une petite question assez urgente. Je programme et j'ai un pb au niveau des conversion de type : cstring en char.Pouvez vous me dire comm pb de conversion float => integer [ par Ricool ] SalutVoila j'ai un probleme pr convertir un float en integeret je ne vois pas trop comment faire vu ke c possible en bit à bit comme le fait le langag Distinguer un float et un char dans une EditBox sous Visual 6.0 [ par threepwood ] Bonjour,je suis en train de développer une application SDI dans laquelle je fais appel à une boite de dialogue où sont présents différentes EditBox.Le conversion [ par moloko2000 ] y a t'il un moyen de convertir un char[25] en un char* (un moyen d'obliger le compilateur à accepter ce genre de conversion) conversion(bis) [ par moloko2000 ] je reformule ma question différement y a t'il un moyen de forcer la conversion entre un char[20](par exemple) et un char *.


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,515 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.