AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 [Résolu] Lire un DWORD (Big-endian) à partir de 4 octets en décimal

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Asu
Utilisateur confirmé: Rang ****
avatar

Messages : 895

MessageSujet: [Résolu] Lire un DWORD (Big-endian) à partir de 4 octets en décimal   Mar 28 Oct 2014 - 9:51

Bon, je voulais faire un read_dword() pour me faciliter la tâche avec GM, sauf qu'en fait c'est relativement chaud sachant que GM retourne du décimal avec file_bin_read_byte() Yum!

Du coup d'après ce que j'ai compris, un WORD en Big-Endian c'est par exemple :
00011001 00011000 (25 24) et que du coup quand on relie ça donne 0001100100011000 (6424), donc on peut pas du tout relier les 2 octets en décimal, à part convertir en binaire, relier et reconvertir en décimal... Sous GM ça me paraît d'autant plus lent puisqu'il faut pouvoir lire assez rapidement tout ça. (Un DWORD c'est 4 octets)

Quel est le moyen le plus optimisé?

Solution a écrit:
Trouvé, avec l'exemple du WORD c'est ça :
Code:
(25<<8)|24
Pour un DWORD 00110011 11001110 11000111 00011001 (51 206 199 25) il faut donc faire
Code:
(51<<24)|(206<<16)|(199<<8)|25

_________________
‎<‎Cysteine‎>‎ nON mais la touche maj s'active/se désactive toute seule
‎<‎Cysteine‎>‎ et a du mal à réponDRE QUANd j'appuie dessus
‎<‎Cysteine‎>‎ et je l'ai démont2? IL Ny a rien DEDANs


Dernière édition par Soundii le Mar 28 Oct 2014 - 11:06, édité 2 fois
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: [Résolu] Lire un DWORD (Big-endian) à partir de 4 octets en décimal   Mar 28 Oct 2014 - 10:17

Non mais faut vraiment arrêter de vouloir convertir les nombres en binaire etc, en mémoire c'est du binaire, point barre :P

Donc si tu veux passer deux bytes en un word, tu fais juste b1 | (b2 << 8) ou (b1 << 8) | b2 (dépend de l'endianess).
Fonctionne pareil pour un dword, or binaire et décalages.

_________________
                 
Revenir en haut Aller en bas
Asu
Utilisateur confirmé: Rang ****
avatar

Messages : 895

MessageSujet: Re: [Résolu] Lire un DWORD (Big-endian) à partir de 4 octets en décimal   Mar 28 Oct 2014 - 10:20

Ah tiens j'ai pas pensé aux opérateurs binaires de GM, à vrai dire je les ai jamais utilisés ^^
Je vais y jeter un oeil, merci

_________________
‎<‎Cysteine‎>‎ nON mais la touche maj s'active/se désactive toute seule
‎<‎Cysteine‎>‎ et a du mal à réponDRE QUANd j'appuie dessus
‎<‎Cysteine‎>‎ et je l'ai démont2? IL Ny a rien DEDANs
Revenir en haut Aller en bas
Asu
Utilisateur confirmé: Rang ****
avatar

Messages : 895

MessageSujet: Re: [Résolu] Lire un DWORD (Big-endian) à partir de 4 octets en décimal   Mar 28 Oct 2014 - 11:04

Trouvé, avec l'exemple du WORD c'est ça :
Code:
(25<<8)|24
Pour un DWORD 00110011 11001110 11000111 00011001 (51 206 199 25) il faut donc faire
Code:
(51<<24)|(206<<16)|(199<<8)|25
,  = 869189401 simple comme bonjour en fait o:
Je sais pas s'il y a plus opti (mais je pense pas), mais ça remplit son job.
Ton tutoriel est bien expliqué oni, merci bien, j'ai tout compris sur les opérateurs maintenant o/

_________________
‎<‎Cysteine‎>‎ nON mais la touche maj s'active/se désactive toute seule
‎<‎Cysteine‎>‎ et a du mal à réponDRE QUANd j'appuie dessus
‎<‎Cysteine‎>‎ et je l'ai démont2? IL Ny a rien DEDANs
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: [Résolu] Lire un DWORD (Big-endian) à partir de 4 octets en décimal   

Revenir en haut Aller en bas
 
[Résolu] Lire un DWORD (Big-endian) à partir de 4 octets en décimal
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]lire geneo sur un autre ordinateur
» [Résolu][VX Ace] "Autotile" à partir d'une image
» Comment lire quand quelqu'unE écrit en caractères minuscules ?
» La page humour - à lire sans modération 2
» A lire cet été...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide confirmés-
Sauter vers: