|
Trouver une ressource
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 : Binaire vers nombre long [ Algorithme / Compression & Cryptage ] (cybercool33)
Informations & options pour cette discussion
|
vendredi 24 novembre 2006 à 15:28:11 |
Binaire vers nombre long

cybercool33
|
Bonjour, Je suis en train de décrypter un fichier binaire. J'essai de recupérer un nombre codé sur 10 octets. Je pense que le stockage de ce nombre est réalisé avec une mantisse de 64 bits, mais j'en suis pas sur. Voilà trois valeurs stockés en hexa: 4005 F6E9 78D4 FDF3 C000=123.456 4005 F6E9 FBE7 6C8B 5000=123.457 4005 F6EA 7EF9 DB22 E000=123.458 Quelqu'un aurait un algorithme me permettant de décrypter ces nombres svp? Merci Cybercool
|
|
|
|
vendredi 24 novembre 2006 à 15:43:35 |
Re : Binaire vers nombre long
|
|
vendredi 24 novembre 2006 à 16:27:06 |
Re : Binaire vers nombre long

cybercool33
|
Non je ne trouve pas mon bonheur dans ces sources.
Ces sources donnent le moyen de transcrire de l'hexa vers de l'entier. J'ai besoin de transcrire de l'hexa en nombres flottant (a virgule^^) stockées sur 10 octets .
Cybercool33
|
|
|
|
vendredi 24 novembre 2006 à 16:32:58 |
Re : Binaire vers nombre long

casy
|
Es-tu certain que tes nombres sont codés sur 10 octets?
Normalement un nombre à virgule flotante c'est 32bits pour le single et 64bits pour le double soit respectivement 4 et 8 octets. Regarde du coté de la norme IEEE754
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
|
|
|
|
vendredi 24 novembre 2006 à 16:33:41 |
Re : Binaire vers nombre long

TMONOD
|
Bonjour, Sur Codeproject, un article récent sur la manipulation des trés grands nombres, en anglais (malheuresement) si tu n'y est pas trop allergique : [ Lien ]Jcbé[^]
|
|
|
|
vendredi 24 novembre 2006 à 16:50:11 |
Re : Binaire vers nombre long

casy
|
Il existe bien des nombres à virgule flottantes de 80bits --> [ Lien ]J'aurais appris quelque chose aujourd'hui. ---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
|
|
|
|
vendredi 24 novembre 2006 à 17:05:40 |
Re : Binaire vers nombre long

cybercool33
|
Oui Casy mes nombres sont stockées sur 10 Octets.
Jcbé, Le site parle des problèmes de calcul sur des grands nombres. Moi je veux juste décoder les nombres binaires qui sont stockées dans un fichier.
Casy, ton dernier lien est vraiment interessant cependant avec la formule :
| Grande précision | 80 bits | 1 bit | 15 bits | 64 bits |  | Je n'arrive pas a retrouver ma valeur. Exemple: 4005 F6E9 78D4 FDF3 C000=123.456 Comment connaitre la valeur de mon signe, ma mantisse et mon exposant?
Merci Cybercool
|
|
|
|
vendredi 24 novembre 2006 à 17:49:22 |
Re : Binaire vers nombre long

BruNews
|
Ce genre de conversion me semble totalement hors de portée de tout langage interprété.
A simple fin didactique (sait-on jamais), je viens de te l'écrire. Tu pourras passer les 2 fonctions dans une DLL qui exportera un appel HexaTenToDbl().
#include <windows.h> #include <stdio.h>
__declspec(naked) DWORD __fastcall HexaToByte(char *pszhexa) { __asm { or eax, -1 ;// PRESUME ERREUR mov dl, byte ptr[ecx] mov cl, byte ptr[ecx+1] cmp dl, 48 jb short btEXIT cmp cl, 48 jb short btEXIT cmp dl, 70 ja short btEXIT cmp cl, 70 ja short btEXIT cmp dl, 65 jae short hiAF cmp dl, 57 ja short btEXIT sub dl, 48 jmp short hiOK hiAF: sub dl, 55 hiOK: cmp cl, 65 jae short loAF cmp cl, 57 ja short btEXIT sub cl, 48 jmp short loOK loAF: sub cl, 55 loOK: mov al, dl shl al, 4 add al, cl and eax, 0FFh btEXIT: ret 0 } }
// FONCTION RETOURNE 0.0 SI CHAINE NON HEXA (0-9, A-F sur 20 caractères) // PAS EU LE TEMPS DE PRENDRE EN CHARGE LES MINUSCULES __declspec(naked) double __fastcall HexaTenToDbl(char *pszhexa) { __asm { push esi push ebx mov esi, ecx sub esp, 12 mov ebx, 10 fromHEXATEN: call HexaToByte test eax, eax js short errHEXA add esi, 2 sub ebx, 1 mov ecx, esi mov byte ptr[esp+ebx], al jnz short fromHEXATEN fld tbyte ptr[esp] jmp short tenEXIT errHEXA: fldz tenEXIT: add esp, 12 pop ebx pop esi ret 0 } }
// PROCEDURE DE TEST void __stdcall Teste() { char buf[24]; sprintf(buf, "%.4f", HexaTenToDbl("4005F6EA7EF9DB22E000")); MessageBox(0, buf, "OK", 0); }
// POINT D'ENTREE DU PROG int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE x, PSTR y, int z) { Teste(); return 0; }
ciao... BruNews, MVP VC++
|
|
|
|
vendredi 24 novembre 2006 à 20:39:15 |
Re : Binaire vers nombre long

BruNews
|
1 MOV en benef:
__declspec(naked) DWORD __fastcall HexaToByte(char *pszhexa) { __asm { or eax, -1 ;// PRESUME ERREUR mov dl, byte ptr[ecx+1] mov al, byte ptr[ecx] cmp al, 48 jb short btEXIT cmp dl, 48 jb short btEXIT cmp al, 70 ja short btEXIT cmp dl, 70 ja short btEXIT cmp al, 65 jae short hiAF cmp al, 57 ja short btEXIT sub al, 48 jmp short hiOK hiAF: sub al, 55 hiOK: cmp dl, 65 jae short loAF cmp dl, 57 ja short btEXIT sub dl, 48 jmp short loOK loAF: sub dl, 55 loOK: shl al, 4 add al, dl and eax, 0FFh btEXIT: ret 0 } }
ciao... BruNews, MVP VC++
|
|
|
|
vendredi 24 novembre 2006 à 20:54:47 |
Re : Binaire vers nombre long

BruNews
|
Bon allez, à la demande générale voici version définitive:
SUPPRIMER fonction HexaToByte() devenur inutile. Ne conserver que ceci:
__declspec(naked) double __fastcall HexaTenToDbl(char *pszhexa) { __asm { push ebx sub esp, 12 mov ebx, 10 fromHEXATEN: mov dl, byte ptr[ecx+1] mov al, byte ptr[ecx] cmp al, 48 jb short errHEXA cmp dl, 48 jb short errHEXA cmp al, 70 ja short errHEXA cmp dl, 70 ja short errHEXA cmp al, 65 jae short hiAF cmp al, 57 ja short errHEXA sub al, 48 jmp short hiOK hiAF: sub al, 55 hiOK: cmp dl, 65 jae short loAF cmp dl, 57 ja short errHEXA sub dl, 48 jmp short loOK loAF: sub dl, 55 loOK: shl al, 4 add ecx, 2 add al, dl sub ebx, 1 mov byte ptr[esp+ebx], al jnz short fromHEXATEN fld tbyte ptr[esp] jmp short tenEXIT errHEXA: fldz tenEXIT: add esp, 12 pop ebx ret 0 } }
ciao... BruNews, MVP VC++
|
|
|
Cette discussion est classé dans : nombre, long, binaire, décrypter, f6e9
Répondre à ce message
Sujets en rapport avec ce message
Besoin aide sur fonction Min et Max dans Macro Excel [ par Baboune ]
Bonjour,je voudrai utiliser la fonction Min et Max suivante de TomAmplius mais je n'y comprend rien !Je voudrai aussi l'associer avec la fonction de c
Probleme avec les boucles For et le If ?? ou autre chose !??? [ par RaZoR ]
Ce petit programme me permet seulement de tester une petite routine d'un de mes projet !! Cette routine consiste a ouvrir un fichier .bmp en lecture b
Nombre de mots dans une phrase et mot le plus long [ par SUBMAIN ]
Voila je voudrais savoir comment faire un programme qui saisisse une phrase et affiche :-le nombre de mots dans cette phrase.-Le mot le plus long et l
RGB HEX et long nombre [ par ebwm ]
bonjourquand on fait un source.backcolor (par exemple) on obtient un nombre du genre 9459964, comment convertir ce nombre en RGB ou HEX (rgb(252,84,14
long nombre ver s RGB [ par ebwm ]
bonjourquand on fait un source.backcolor (par exemple) on obtient un nombre du genre 9459964, comment convertir ce nombre en RGB ou HEX (rgb(252,84,14
Relire en Vb un nombre float dans un fichier binaire [ par cuq ]
Bonjour J'ai un fichier binaire qui contient des nombre de type "float" donc codé sur 32 byte .Comment relire ce nombre en VB .J'ai une solution qui r
Decimale ou Binaire ? [ par jmtoulon ]
Bonjour,voila, je souhaiterais créer un module qui gère les grands nombres.Seulement mon probleme est que je c'est pas si je dois faire les traitement
Creation de fichier binaire->choix du nombre de bits [ par mi12ox ]
Bonjour, je suis en train de travailler sur un projet de compression d'images utilisant différents algorithmes. j'utilise pour cela l'écriture de fich
pb avec inet_ntoad de winsock [ par xerque ]
Bonjour,J'ai un pb avec inet_ntoad(nombre as long ). Cette fonction permet de changer un long en adresse IP lisible. Cependant si mon nombre dépasse l
Binaire Currency [ par pascalparis ]
quelle est la norme qui définie la traduction en binaire d'un nombrede type Currencyou comment peut-on traduire en binaire un nombre Currency"j'ai cel
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|