Page 1 sur 1
16 bit unsigned
Publié : mer. 10/mars/2010 22:36
par bebou007
salut a tous voila j'ai beaux essayer j'arrive pas a avoir la valeur que je cherche je m'explique j'ai un fichier que j'ai ouvert avec winhex j'ai besoin de récupère les donner dedans
grâce a winhex je sais que c'est un 16bit unsigned par contre j'arrive pas a avoir la même valeur que winhex
un petit screen pour expliquer quel valeur je dois avoir pour quel donner hexa
donc j'ai essayer toute les fonction pour lire mon fichier mais je n'obtiens pas la valeur entourer merci pour vos reponse
Re: 16 bit unsigned
Publié : mer. 10/mars/2010 22:40
par case
essaie
ou nombre est la variable contenant la valeur lue dans le fichier
ca devrais fonctionner
en fait le ' & $ffff ' aplique un masque binaire au nombre et ne garde que les 16 bits de poids faible
Re: 16 bit unsigned
Publié : mer. 10/mars/2010 22:54
par cha0s
Word .w 2 octets -32768 à +32767
pas de 16 bit non signé en pure (sauf le Caractère en unicode) donc il faut ruser
il te suffit donc de lire ton mot de 16 bits et de le foutre dans un type plus adapté
Code : Tout sélectionner
test.w = -1
test2.l = test & %00000000000000001111111111111111
Debug test2
Edit : arf grillé :p
Re: 16 bit unsigned
Publié : jeu. 11/mars/2010 18:19
par bebou007
merci pour vos reponsse mais sa ne marche pas ou alors j'ai rien compris
si je met sa
nombre=$E5DE28A9
Debug nombre & $ffff
j'obtiens 10409 et non 57061 rechercher merci pour vos reponsse
Re: 16 bit unsigned
Publié : jeu. 11/mars/2010 18:41
par cha0s
57061 = DEE5
Ton éditeur ne doit pas utiliser la même norme de lecture
nombre=$E5DE28A9
Debug nombre & $ffff
revient a faire
Re: 16 bit unsigned
Publié : jeu. 11/mars/2010 20:07
par bebou007
ok merci sa marche en fait suffit que je lise d'abord le deuxieme octer puis le premier pour avoir la valeur que je recherche merci
Re: 16 bit unsigned
Publié : jeu. 11/mars/2010 20:16
par case
ton fichier proviens t'il d'un pc ou d'une autre machine ? quel est son processeur ? car il peu s'agir d'un problème d'endian
little endian= intel x86 par exemple
big endian= motorola 68k par exemple
rien a voir avec les indiens
je t'invite a lire cette doc sur le sujet
http://www.ai.univ-paris8.fr/~fb/Cours/ ... endian.pdf
très instructif je trouves

Re: 16 bit unsigned
Publié : jeu. 11/mars/2010 21:29
par bebou007
mon fichier vien bien d'un pc c'est un fichier de la demo de just cause 2 en fait il y a un fichier archive avec toute les donner dedans et un fichier table ou il y a la position et la taille des fichier dans l'archive
Re: 16 bit unsigned
Publié : ven. 12/mars/2010 7:22
par comtois
cha0s a écrit :Word .w 2 octets -32768 à +32767
pas de 16 bit non signé en pure (sauf le Caractère en unicode) donc il faut ruser
Pas besoin de ruser, le format 16 bits non signé existe en PB.
Re: 16 bit unsigned
Publié : ven. 12/mars/2010 12:29
par cha0s
pourtant ce n'etait pas dans ma doc, peut être que je devrait mettre a jour ma version ^^'