FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» demande explication KGF pour imprimer en mm
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar JL35 Aujourd'hui à 17:28

» Petit passage furtif
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar Froggy One Hier à 14:26

» SPIN et aide langage (résolu)
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar leclode Sam 23 Mar 2024 - 15:20

» Aide-mémoire des mots-clés Panoramic
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar papydall Mer 20 Mar 2024 - 21:23

» Je ne comprend pas pourquoi la largeur de la scene 3d change
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar Marc Mar 12 Mar 2024 - 20:06

» Comment télécharger panoramic?
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar lepetitmarocain Sam 9 Mar 2024 - 13:31

» @lepetitmarocain <==> KGFGrid
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar Klaus Dim 3 Mar 2024 - 9:59

» Tangram-Toukaré
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar jjn4 Mer 28 Fév 2024 - 18:12

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar jjn4 Mer 28 Fév 2024 - 18:09

» KGF_dll - nouvelles versions
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar Klaus Mer 28 Fév 2024 - 17:01

» Mes souhaits d'amélioration de Panoramic.
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar Pedro Lun 26 Fév 2024 - 18:12

» Testez-votre-QI
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar jjn4 Dim 25 Fév 2024 - 17:12

» Utilisation d'Élip
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar jjn4 Sam 24 Fév 2024 - 18:33

» Récapitulatif ludothèque panoramic jjn4
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar jjn4 Sam 24 Fév 2024 - 18:11

» Générateur de mots de passe
bug : PEEK32/POKE32 inverse l'ordre des octets Emptypar mindstorm Mar 20 Fév 2024 - 20:09

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mars 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier
-50%
Le deal à ne pas rater :
-50% sur les sacs à dos pour ordinateur portable Urban Factory ...
19.99 € 39.99 €
Voir le deal

 

 bug : PEEK32/POKE32 inverse l'ordre des octets

Aller en bas 
2 participants
AuteurMessage
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

bug : PEEK32/POKE32 inverse l'ordre des octets Empty
MessageSujet: bug : PEEK32/POKE32 inverse l'ordre des octets   bug : PEEK32/POKE32 inverse l'ordre des octets EmptyMar 27 Mar 2018 - 15:02

Ces 2 comandes inversent l'ordre des octets lu/écrit en mémoire, rendant le résultat inexploitable (Il en est de même pour les commandes PEEK16/POKE16).
Code:
dim a%,b%,i%

' ecrire dans a% la série d'octet : 001 002 003 004
a%=001*power(256,3) + 002*power(256,2) + 003*power(256,1) + 004*power(256,0)
print "a% contient la série d'octet : 001 002 003 004"
' copier a% dans b%
b%=peek32(adr(a%))
print "a% est copié dans b% via la commande PEEK32"
print

print "lecture de a%:"
for i%=3 to 0 step -1
  print peek(adr(a%)+i%);"  ";
next i%

print:print

print "lecture de b%:"
for i%=3 to 0 step -1
  print peek(adr(b%)+i%);"  ";
next i%
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2381
Date d'inscription : 28/05/2007

bug : PEEK32/POKE32 inverse l'ordre des octets Empty
MessageSujet: Re: bug : PEEK32/POKE32 inverse l'ordre des octets   bug : PEEK32/POKE32 inverse l'ordre des octets EmptyMar 27 Mar 2018 - 18:41

silverman a écrit:
a% contient la série d'octet : 001 002 003 004

Eh bien non.

En faisant
Code:
a%=001*power(256,3) + 002*power(256,2) + 003*power(256,1) + 004*power(256,0)
Tu n'écris pas dans a% la série d'octet : 001 002 003 004, mais la série d'octets 004 003 002 001

La preuve:
Code:
dim a%
a%=001*power(256,3) + 002*power(256,2) + 003*power(256,1) + 004*power(256,0)

print "a% contient la série d'octet : 004 003 002 001"

print peek(adr(a%))
print peek(adr(a%+1))
print peek(adr(a%+2))
print peek(adr(a%+3))

Comme l'a fait remarquer Marc:
Marc a écrit:
Je viens de lire cet article sur l'organisation des données :
https://fr.wikipedia.org/wiki/Endianness
Très intéressant !
Bonne programmation à tous !

Windows est du type "Little Endian"

En utilisant POKE32 et PEEK32() avec une adresse de variable entière, tu as l'impression que tout est inversé.
Mais PEEK32() et POKE32 ne sont pas faits pour être utilisés uniquement avec des adresses de variables entières.

_________________
bug : PEEK32/POKE32 inverse l'ordre des octets Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

bug : PEEK32/POKE32 inverse l'ordre des octets Empty
MessageSujet: Re: bug : PEEK32/POKE32 inverse l'ordre des octets   bug : PEEK32/POKE32 inverse l'ordre des octets EmptyMar 27 Mar 2018 - 22:08

En effet, j'ai commis une erreur, c'est bien la séquence 004 003 002 001 qui est écrite. Cependant, ça ne change pas le fait que pour un même mode de lecture, l'ordre des octets est inversé.
Comme l'a évoqué klaus ici, les valeurs telles qu'elles sont retournées actuellement ne sont pas directement exploitable pour nous, les panoramiciens.
Par exemple a%=peek32(adr(machaine$)) ne retourne pas l'adresse correctement puisque l'ordre des octets est inversé. Transmettre cette adresse dans un DLL_CALLx("fonction_quelconque",a%) conduit à un plantage.
Revenir en haut Aller en bas
Contenu sponsorisé





bug : PEEK32/POKE32 inverse l'ordre des octets Empty
MessageSujet: Re: bug : PEEK32/POKE32 inverse l'ordre des octets   bug : PEEK32/POKE32 inverse l'ordre des octets Empty

Revenir en haut Aller en bas
 
bug : PEEK32/POKE32 inverse l'ordre des octets
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» binaire et inverse
» incohérence POKE32
» Savez-vous compter les octets ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un problème avec PANORAMIC?-
Sauter vers: