problème de conversion de valeur avec ReadWord()

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

problème de conversion de valeur avec ReadWord()

Message par GallyHC »

Bonjour tous,

J'ai une problème sur la lecture d'un fichier hexa. En fait je dois prendre 2 octets et obtenir sa valeur numerique. Pour cela pour le moment j'utilise ReadWord(), masi cela me donne pas la valeur voulu.

Je m'explique :

Les bits voulu donne "00 80" ce qui normalement doit me donné "32768", mais cela me donne "-32768" par ce que je suis en valeur signe. Y a t'il une methode pour obtenir les bon resultat.

Merci d'avance tous,
Cordialement,
GallyHC
Dernière modification par GallyHC le dim. 06/juin/2010 11:40, modifié 1 fois.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Re: problème de conversion de valeur avec ReadWord()

Message par lepiaf31 »

Oui, tu stockes la valeur dans une variable de type unicode (2 octets non-signés):

Code : Tout sélectionner

OpenFile(0, "file")
var.u = ReadWord(0)
CloseFile(0)
Debug var
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: problème de conversion de valeur avec ReadWord()

Message par GallyHC »

Merci pour la reponse mais cela me donne 0.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Re: problème de conversion de valeur avec ReadWord()

Message par lepiaf31 »

Ha ben chez moi avec un fichier contenant simplement "00 80", je trouve bien 32768 .
(n'oublie pas de changer le chemin du fichier)
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: problème de conversion de valeur avec ReadWord()

Message par GallyHC »

Re,

Mille excuses, j'ai telement fait de modif que je n'avais plus ReadWord() mais ReadCharacter() et oui cela fonctionne.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: problème de conversion de valeur avec ReadWord()

Message par Le Soldat Inconnu »

pour passer d'un mot signé à non signé, on peut faire ainsi :

Code : Tout sélectionner

Long.l = Word.w & $FFFF
Long.l = Byte.b & $FF
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: problème de conversion de valeur avec ReadWord()

Message par Backup »

oula !! ya melange des genres là !!

pour rappel un bit = une valeur binaire (0 ou 1 )
a ne pas confondre avec un Byte = un octet , soit 8 bits !

mieux vaux rester en france et considérer un bit comme valeur 0 ou 1

pour le reste ne pas parler de byte (qui porte a confusion , la preuve Gally hc)

mais d'Octets !!

2 octets = un mot (word)
4 octets = un mot long (Double)
;)
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Re: problème de conversion de valeur avec ReadWord()

Message par SPH »

"00 80" ce qui normalement doit me donné "32768"
???
Si "00" puis "80" sont de l'hexa, alors, en decimal, ca fait 8*256; soit 2048.

En tout cas, "0080" n'est du bit (binaire)

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: problème de conversion de valeur avec ReadWord()

Message par GallyHC »

Bonjour,

Oui pas 2 octets et pas 2 bits petite erreur de ma part.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Re: problème de conversion de valeur avec ReadWord()

Message par SPH »

GallyHC a écrit :Bonjour,

Oui pas 2 octets et pas 2 bits petite erreur de ma part.

Cordialement,
GallyHC
Donc de l'hexa ?
Ca en hexa ? "0080" ?
Tu penses que ca fais combien toi ?

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: problème de conversion de valeur avec ReadWord()

Message par GallyHC »

En lecture de fichier pour moi "00 80" on inverse sa donne $8000 soit 32768 est oui sa me donne bien cela...
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Re: problème de conversion de valeur avec ReadWord()

Message par SPH »

GallyHC a écrit :En lecture de fichier pour moi "00 80" on inverse sa donne $8000 soit 32768 est oui sa me donne bien cela...
oui

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: problème de conversion de valeur avec ReadWord()

Message par GallyHC »

Pourquoi me demande tu cela?
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Re: problème de conversion de valeur avec ReadWord()

Message par SPH »

GallyHC a écrit :Pourquoi me demande tu cela?
J'essayais de finir de comprendre ton probleme. Mais si tu as reussi, c'est le principal :wink:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: problème de conversion de valeur avec ReadWord()

Message par GallyHC »

Oui j'ai reussi grace a lepiaf31, queje remerci d'ailleur :) et merci d'avoir essaye de m'aide aussi.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Répondre