problème de conversion de valeur avec ReadWord()
problème de conversion de valeur avec ReadWord()
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
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)
-
- Messages : 510
- Inscription : dim. 25/mars/2007 13:44
- Localisation : Toulouse, France
- Contact :
Re: problème de conversion de valeur avec ReadWord()
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
Re: problème de conversion de valeur avec ReadWord()
Merci pour la reponse mais cela me donne 0.
Cordialement,
GallyHC
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
-
- Messages : 510
- Inscription : dim. 25/mars/2007 13:44
- Localisation : Toulouse, France
- Contact :
Re: problème de conversion de valeur avec ReadWord()
Ha ben chez moi avec un fichier contenant simplement "00 80", je trouve bien 32768 .
(n'oublie pas de changer le chemin du fichier)
(n'oublie pas de changer le chemin du fichier)
Re: problème de conversion de valeur avec ReadWord()
Re,
Mille excuses, j'ai telement fait de modif que je n'avais plus ReadWord() mais ReadCharacter() et oui cela fonctionne.
Cordialement,
GallyHC
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)
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: problème de conversion de valeur avec ReadWord()
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: problème de conversion de valeur avec ReadWord()
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)

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)

Re: problème de conversion de valeur avec ReadWord()
???"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
Re: problème de conversion de valeur avec ReadWord()
Bonjour,
Oui pas 2 octets et pas 2 bits petite erreur de ma part.
Cordialement,
GallyHC
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)
Re: problème de conversion de valeur avec ReadWord()
Donc de l'hexa ?GallyHC a écrit :Bonjour,
Oui pas 2 octets et pas 2 bits petite erreur de ma part.
Cordialement,
GallyHC
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
Re: problème de conversion de valeur avec ReadWord()
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)
Re: problème de conversion de valeur avec ReadWord()
ouiGallyHC a écrit :En lecture de fichier pour moi "00 80" on inverse sa donne $8000 soit 32768 est oui sa me donne bien cela...
!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
Re: problème de conversion de valeur avec ReadWord()
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)
Re: problème de conversion de valeur avec ReadWord()
J'essayais de finir de comprendre ton probleme. Mais si tu as reussi, c'est le principalGallyHC a écrit :Pourquoi me demande tu cela?

!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
Re: problème de conversion de valeur avec ReadWord()
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)