Page 1 sur 2
problème de conversion de valeur avec ReadWord()
Publié : ven. 04/juin/2010 19:39
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
Re: problème de conversion de valeur avec ReadWord()
Publié : ven. 04/juin/2010 20:54
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
Re: problème de conversion de valeur avec ReadWord()
Publié : ven. 04/juin/2010 21:06
par GallyHC
Merci pour la reponse mais cela me donne 0.
Cordialement,
GallyHC
Re: problème de conversion de valeur avec ReadWord()
Publié : ven. 04/juin/2010 21:09
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)
Re: problème de conversion de valeur avec ReadWord()
Publié : ven. 04/juin/2010 21:17
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
Re: problème de conversion de valeur avec ReadWord()
Publié : ven. 04/juin/2010 21:21
par Le Soldat Inconnu
pour passer d'un mot signé à non signé, on peut faire ainsi :
Re: problème de conversion de valeur avec ReadWord()
Publié : ven. 04/juin/2010 23:18
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)

Re: problème de conversion de valeur avec ReadWord()
Publié : sam. 05/juin/2010 17:18
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)
Re: problème de conversion de valeur avec ReadWord()
Publié : dim. 06/juin/2010 11:41
par GallyHC
Bonjour,
Oui pas 2 octets et pas 2 bits petite erreur de ma part.
Cordialement,
GallyHC
Re: problème de conversion de valeur avec ReadWord()
Publié : dim. 06/juin/2010 14:49
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 ?
Re: problème de conversion de valeur avec ReadWord()
Publié : dim. 06/juin/2010 15:40
par GallyHC
En lecture de fichier pour moi "00 80" on inverse sa donne $8000 soit 32768 est oui sa me donne bien cela...
Re: problème de conversion de valeur avec ReadWord()
Publié : dim. 06/juin/2010 15:44
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
Re: problème de conversion de valeur avec ReadWord()
Publié : dim. 06/juin/2010 15:51
par GallyHC
Pourquoi me demande tu cela?
Re: problème de conversion de valeur avec ReadWord()
Publié : dim. 06/juin/2010 16:11
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

Re: problème de conversion de valeur avec ReadWord()
Publié : dim. 06/juin/2010 16:32
par GallyHC
Oui j'ai reussi grace a lepiaf31, queje remerci d'ailleur

et merci d'avoir essaye de m'aide aussi.