|
Bas de page | |
---|---|
Auteur | Sujet : déchiffrer encodage de nombre réels |
Publicité | Posté le 02-07-2018 à 22:08:30 |
MaybeEijOrNot but someone at least | Je suis à peu près sûr que le dernier bit (en partant de la droite) du second octet est le signe. D'après l'exemple du nombre 0.1, les 7 autres bits (que j’appellerai à tord "septuplet" ) correspondent à l'exposant, ainsi dans cet exemple on trouve : septuplet = 1*2^0 + 1*2^1 + 1*2^2 + 1*2^3 + 1*2^4 + 1*2^5 + 0*2^6 = 63 L'exposant étant égale à 0, on ne déplace pas la virgule : 1.0000000
L'exposant étant égale à 2, on place la virgule de 2 fois vers la droite : 110.000000
L'exposant étant égale à 2, on place la virgule de 2 fois vers la droite : 111.000000
Mais pourtant leur exposant est égale à 2 donc je ne vois pas comment s'en accommoder. Bref juste des pistes, pas trouvé de règle universelle. Message édité par MaybeEijOrNot le 03-07-2018 à 21:41:57 --------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
MaybeEijOrNot but someone at least | Bon j'ai trouvé, en fait faut décaler deux 2 bits la "virgule" pour chaque valeur de l'exposant. Si le premier octet commence par un 0 alors on le remplace par un 1 et on décale d'un bit supplémentaire la virgule.
--------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
rat de combat attention rongeur méchant! | Merci beaucoup!! Ça a l'air plutôt compliqué, je regarderai ta solution quand je serai plus concentré. |
TotalRecall | T'as géré
--------------- Topic .Net - C# @ Prog |
MaybeEijOrNot but someone at least | Aucune idée, hier, avant de chercher des infos sur le net, je connaissais que de nom "virgule flottante" et "virgule fixe" et j'avais vaguement une idée de comment ça fonctionnait. Donc il ne faut pas trop m'en demander. --------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
rat de combat attention rongeur méchant! | Bon, je pense qu'on a raté un truc tout les deux. Après y avoir passé bien du temps j'ai réussi à pondre un décodeur, sauf que ce dernier marche sur tout les exemples sauf deux (0.6 et 0.7) - et pour ces deux là ton tableau ne fonctionne pas non plus. WTF? Je vérifierai que c'est pas une erreur de copier-coller...
|
MaybeEijOrNot but someone at least | Je viens de vérifier, en effet, c'est aussi les deux seuls exemples qui ne fonctionnent pas dans mon tableau. Néanmoins, comme je l'ai pointé dans mon message précédent, ce codage me semble complètement absurde. Il doit donc y avoir une subtilité qui nous échappe, n'aurais-tu pas d'autres exemples ?
Message cité 1 fois Message édité par MaybeEijOrNot le 04-07-2018 à 21:53:18 --------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
rat de combat attention rongeur méchant! |
Ah tiens, ça soutient la thèse de l'erreur de copier-coller. Je vérifierai et je peux produire d'autres exemples, mais plus aujourd'hui, j'en ai marre là... |
MaybeEijOrNot but someone at least | Ah ok l'erreur de copier/coller c'est dans l'exemple. Je croyais que tu parlais de copier/coller dans le programme. Sinon, pour ta culture (comme pour la mienne), j'ai édité mon message précédent à propos des nombres signés. EDIT : puis j'édite celui là. Message cité 1 fois Message édité par MaybeEijOrNot le 04-07-2018 à 22:03:17 --------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
Publicité | Posté le 04-07-2018 à 21:54:46 |
rat de combat attention rongeur méchant! | Ah oui, le complément à 1 (ou à 2?), ça me dit quelque chose. Après dans mon application les nombres seront toujours positifs de toute façon, je peux pas générer de nombres négatifs. |
MaybeEijOrNot but someone at least | Je suis tombé sur complément à 1 mais oui ce doit être complément à 2 puisque c'est le complément à 2 qui est utilisé pour faire une soustraction. EDIT : je ne raconte pas le nombre de choses différentes que j'ai lu sur les virgules flottantes. Même si il existe plusieurs normes, je pense que certains sites se plantent. EDIT2 : (soirée édit) Message édité par MaybeEijOrNot le 04-07-2018 à 22:38:59 --------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
rat de combat attention rongeur méchant! | J'ai vérifié, il y avait bien une erreur de copier-coller pour 0.6 et 0.7, désolé.
|
MaybeEijOrNot but someone at least | Tu n'as pas de nombre avec plus d'une décimale ?
--------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
rat de combat attention rongeur méchant! | Des données avec plus d'une décimale je peux peut-être en produire, par contre je n'aurai pas la valeur décimale exacte. Les nombres négatifs n'ont (dans cette application) aucun sens donc je ne peux pas en produire, désolé. Du coup les exposants <63 ça peut m'être assez égal. |
MaybeEijOrNot but someone at least |
--------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
rat de combat attention rongeur méchant! | Voici le code final (j'espère ) avec 4 exemples à 4 octets (à la fin). C'est le mieux que je puisse faire concernant plus de décimales...
|
MaybeEijOrNot but someone at least | Ok, merci.
Message édité par MaybeEijOrNot le 14-07-2018 à 13:34:40 --------------- C'est en écrivant n'importe quoi qu'on devient n'importe qui. |
Sujets relatifs | |
---|---|
Code jeux du nombre aléatoire en python 3.6 | Python Qgis et encodage UFT-8 |
Afficher une suite de nombre avec un char ou int ? | Encodage des caractères |
Problème d'encodage de liste chainée | Import CSV et encodage en UTF-8 |
Problème d'encodage ? | Limiter le nombre de téléchargement sur mon |
Problème encodage | EN REXX calculer le nombre de jours ouvrés entre 2 dates |
Plus de sujets relatifs à : déchiffrer encodage de nombre réels |