Bonjour,
Pour le codage, voir le lien que j'ai indiqué précédemment:
http://fr.wikipedia.org/wiki/IEEE_754La méthode de codage est un peu complexe (voir explication plus bas)
Maintenant, si la transmission sous forme de "float" est délicate
à gérer depuis Gambas, on peut en définir une autre.
On n'est pas là pour se faire des nœuds à la tête.
On peut partir sur un protocole à base de chaines de caractères ou
de single comme le suggère Yves.
//je cite ici un passage de l'explication donnée dans le lien
...
...
...
Un nombre flottant simple précision est stocké dans un mot de 32 bit : 1 bit de signe, 8 bits pour l'exposant et 23 pour la mantisse.
L'exposant est donc décalé de 2^{8-1} - 1 = 127 dans ce cas. L'exposant d'un nombre normalisé va donc de -126 à +127. L'exposant -127 (qui est décalé vers la valeur 0) est réservé pour zéro et les nombres dénormalisés, tandis que l'exposant 128 (décalé vers 255) est réservé pour coder les infinis et les NaNs (voir le tableau précédent).
Un nombre flottant normalisé a une valeur v donnée par la formule suivante :
v = s × 2e × m.
* s = ±1 représente le signe (selon le bit de signe) ;
* e est l'exposant avant son décalage de 127 ;
* m = 1+mantisse représente la partie significative (en binaire), d'où 1 ≤ m < 2 (mantisse étant la partie décimale de la partie significative, comprise entre 0 et 1)
Par exemple pour 0b 0 01111100 01000000000000000000000 : le signe est nul, l'exposant est 124 - 127 = -3, et la partie significative est 0b 1,01 soit 1,25 en décimal (1×20 + 0×2−1 + 1×2−2) ; le nombre représenté est donc +1,25×2−3 soit +0,15625.
Les nombres dénormalisés suivent le même principe, sauf que e = −126 et m = 0+mantisse (attention : pour le calcul, on veillera à prendre e = -126 et non -127, ceci afin de garantir la continuité de cette représentation avec la représentation normalisée, puisque m = 0+mantisse et non plus m = 1+mantisse).
...
...
...