mJuJu
Messages postés56Date d'inscriptionjeudi 20 octobre 2005StatutMembreDernière intervention27 mai 2014
-
14 juil. 2008 à 21:14
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 2013
-
15 juil. 2008 à 10:55
Bonjours à tous.
Voici ma question:
j'ai voulu utiliser l'API COPYMEMORY pour transférer rapidement un tableau de Bytes dans un tableau de Longs. Bien sûr j'ai fait en sorte que la taille du tableau de Bytes soit 4 fois plus grande que celle du tableau de Longs. Par exemple j'ai un tableau de 32 Bytes que je veux transférer dans un tableau de 8 Longs (32 octets).
Le transfert s'effectue. Mais je trouve la chose étrange. Alors je simplifie et tente de transférer ce tableau:
tByte(1) = 8 soit 00001000
tByte(2) = 4 soit 00000100
tByte(3) = 1 soit 00000001
tByte(4) = 9 soit 00001001
vers ce Long lDest avec l'API COPYMEMORY lDest, tByte(1), 4
La copie s'effectue MAIS je retrouve dans le Long la valeur 151061512 ce qui correspond en binaire à
1001000000010000010000001000 soit octet par octet 9148 !! La valeur du tableau de Byte à l'envers.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 14 juil. 2008 à 21:23
Salut,
Je m'y connais pas assez en système pour être catégorique, mais je dirais que cela ;vient du mode de stockage de windows en mémoire : avec les little-endian et high-endian, selon le mode utilisé, la réprésentation d'un WORD en mémoire est différente (inversion ou non des bits). Je laisse les experts confirmer ou infirmer mes propos !
______________________________________
DarK Sidious
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 15 juil. 2008 à 01:29
@ [auteur/GALAIN/192155.aspx Galain] : Dans ce cas, c'est d'un bit que tu parles, pas d'un byte (octet)
_______________________________________________________________________
VB.NETis good ...VB6is better
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 15 juil. 2008 à 08:36
Nan ... Exemple : 1011 (base 2) fait 11 (base 10).
Quand je dis 'bit', je veux parler des 1 et des 0, en binaire (base 2)
Un byte c'est un nombre de 0 à 255 inclus
_______________________________________________________________________
VB.NETis good ...VB6is better