16 bit unsigned

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

16 bit unsigned

Message 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

Image

donc j'ai essayer toute les fonction pour lire mon fichier mais je n'obtiens pas la valeur entourer merci pour vos reponse
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Re: 16 bit unsigned

Message par case »

essaie

Code : Tout sélectionner

  debug nombre & $ffff
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
ImageImage
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Re: 16 bit unsigned

Message 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
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

Re: 16 bit unsigned

Message 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
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Re: 16 bit unsigned

Message par cha0s »

57061 = DEE5

Ton éditeur ne doit pas utiliser la même norme de lecture :lol:
nombre=$E5DE28A9
Debug nombre & $ffff
revient a faire

Code : Tout sélectionner

nombre=$000028A9
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

Re: 16 bit unsigned

Message 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
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Re: 16 bit unsigned

Message 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 :)
ImageImage
bebou007
Messages : 79
Inscription : dim. 06/mars/2005 20:18

Re: 16 bit unsigned

Message 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
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: 16 bit unsigned

Message 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.

Code : Tout sélectionner

var.u = 65535
Debug var
Debug Hex(var)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Re: 16 bit unsigned

Message par cha0s »

pourtant ce n'etait pas dans ma doc, peut être que je devrait mettre a jour ma version ^^'
Répondre