Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1429 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Inverser partie haute et partie basse d'un long

n°270322
blackgodde​ss
vive le troll !
Posté le 16-12-2002 à 12:19:27  profilanswer
 

Reprise du message précédent :
ah ... bien ... c koi le boutisme ?


---------------
-( BlackGoddess )-
mood
Publicité
Posté le 16-12-2002 à 12:19:27  profilanswer
 

n°270327
BENB
100% Lux.
Posté le 16-12-2002 à 12:23:44  profilanswer
 

BlackGoddess a écrit :

ah ... bien ... c koi le boutisme ?


 
C'est dans les voyages de Gullivert...
 
faut il manger les oeufs à la coque par le gros bout, ou le petit bout de l'oeuf ?

n°270335
Kristoph
Posté le 16-12-2002 à 12:32:18  profilanswer
 

C'est l'art de savoir parler à la fois au grands et aux petits indiens :D

n°270403
blackgodde​ss
vive le troll !
Posté le 16-12-2002 à 13:42:48  profilanswer
 

?!???????


---------------
-( BlackGoddess )-
n°270709
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 16-12-2002 à 16:52:03  profilanswer
 

une histoire d'endianess


---------------
du bon usage de rand [C] / [C++]
n°271109
Musaran
Cerveaulté
Posté le 17-12-2002 à 06:07:47  profilanswer
 

Il s'agit de l'ordre dans lequel sont placés en mémoire les morceaux dont est fait un tout.
On commence par ceux qui ont le...
grand boutiste/big    endian : ...plus ...
petit boutiste/little endian : ...moins...
...de poids pour la valeur du tout.
 
 
Pour un int 0x11223344 écrit à l'adresse 0000, les octets sont placés comme suit:

     Intel   Motorola
     (little)  (big)
 0000  44       11
 0001  33       22
 0002  22       33
 0003  11       44


 
Pour les bits:

Code :
  1. union U{
  2. int i;
  3. int bit:1;
  4. }u;
  5. u.i= 0;
  6. u.bit= 1;

u.i vaudra...
Intel (little endian): ...1.
Motorola (big endian): ...la plus basse valeur négative possible.
 
 
Et puis il y a déjà des posts qui en parlent...


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°271165
BENB
100% Lux.
Posté le 17-12-2002 à 11:06:03  profilanswer
 

J'avais lu dans une doc de Sun qu'il existait aussi du middle endian
 
0x11223344 serait alors socke comme


       LE   ME  BE
0000  44   33  11
0001  33   44  22
0002  22   11  33
0003  11   22  44


le little endian est logique pour un proc 8 bits
on commence toujours les additions par les les unitées...
 
le ME serait logique pour un proc 16 bits
 
le BE serait logique pour un proc 32 bits....


Message édité par BENB le 17-12-2002 à 11:28:53
n°271168
blackgodde​ss
vive le troll !
Posté le 17-12-2002 à 11:11:30  profilanswer
 

heureusement que la on parle de nbres sur 4 octets, sinon sur 8 ou 16 vu kil y a d'autres possibilités pour les coder, j'ose aps imaginer ce qui a encore été inventé ...


---------------
-( BlackGoddess )-
n°271193
BENB
100% Lux.
Posté le 17-12-2002 à 11:35:52  profilanswer
 

BlackGoddess a écrit :

heureusement que la on parle de nbres sur 4 octets, sinon sur 8 ou 16 vu kil y a d'autres possibilités pour les coder, j'ose aps imaginer ce qui a encore été inventé ...


 
En fait il faut revenir a l'arthmetique de primaire :
 
pour faire des additions de nombres a plusieurs chiffres tu commence par les unitées, puis tu rapportes l'eventuelle retenue pour faire la somme des chiffres des dizaines et ainsi de suite...
 
 
donc sur un proc quand tu doit faire l'addition de nombre plus gros qu'un mot processeur, tu as interet a ce que les mots soit stockées dans l'ordre des moins significatifs vers les plus significatifs....
 
D'un autre coté quand un mot est plus gros qu'un octet tu as interet a ce que les octets soient dans l'ordre du mot donc a priori les plus significatif en debut...
 
 
Les proc intel s'inscrivent dans la compatibilité du 8086 qui lui-meme etait plus ou moins compatible avec le... ...8080
 
d'ou des mots de 8 bits...

n°271201
blackgodde​ss
vive le troll !
Posté le 17-12-2002 à 11:41:21  profilanswer
 

ok ... chez Intel c donc une perte de performance de les stocker dans ce sens la ? (pour garder la compatibilité)


---------------
-( BlackGoddess )-
mood
Publicité
Posté le 17-12-2002 à 11:41:21  profilanswer
 

n°271210
BENB
100% Lux.
Posté le 17-12-2002 à 11:55:23  profilanswer
 

BlackGoddess a écrit :

ok ... chez Intel c donc une perte de performance de les stocker dans ce sens la ? (pour garder la compatibilité)


 
C'est plus une complication...
 
de meme que sur intel (8086) tu peut lire a toutes les adresses memoires, alors que sur un 68000 tu ne peux lire qu'aux adresses paires...
 
je ne sais pas si ca genere reelement une perte de perf...
 

n°271908
Musaran
Cerveaulté
Posté le 18-12-2002 à 05:55:30  profilanswer
 

BENB a écrit :

D'un autre coté quand un mot est plus gros qu'un octet tu as interet a ce que les octets soient dans l'ordre du mot donc a priori les plus significatif en debut...
...
C'est plus une complication...


Pourquoi ?
Je n'y vois aucun intérêt. La copie est indifférente au boutisme, et se fait souvent par mot.
Puisque l'addition commence par le faible, autant choisir ce bout comme point de départ pour la disposition en mémoire. Ça a l'avantage que les octets/bits ont le même poids quelle que soit la taille de l'entier stocké.
 
Je n'ai jamais compris l'intérêt du big endian.
 
Quand au middle endian, ç'est un croisement monstrueux !
Pourquoi pas du random order ?


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°271914
blackgodde​ss
vive le troll !
Posté le 18-12-2002 à 08:37:36  profilanswer
 

ah ! oui ca serait drole du random aussi :)))


---------------
-( BlackGoddess )-
n°271926
BENB
100% Lux.
Posté le 18-12-2002 à 09:23:18  profilanswer
 

Musaran a écrit :


Pourquoi ?
Je n'y vois aucun intérêt. La copie est indifférente au boutisme, et se fait souvent par mot.
Puisque l'addition commence par le faible, autant choisir ce bout comme point de départ pour la disposition en mémoire. Ça a l'avantage que les octets/bits ont le même poids quelle que soit la taille de l'entier stocké.
 
Je n'ai jamais compris l'intérêt du big endian.
 
Quand au middle endian, ç'est un croisement monstrueux !
Pourquoi pas du random order ?


Le vrai probleme c'est peut etre la maniere dont tu regarde les choses... le middle endian te parrait monstrueux, mais si au lieu de découper la memoire en octets tu la decoupe en mots, ce ni plus ni moins que du little endian...
 

n°272550
Musaran
Cerveaulté
Posté le 19-12-2002 à 06:44:36  profilanswer
 

Il est monstrueux d'utiliser un boutisme différent selon la taille du découpage.
Imagine des mots lus de gauche à droite, dans un texte lu de droite à gauche, dans un livre qui se feuillette de gauche à droite...
 
Résultat des courses: pour prendre les octets dans l'ordre, une simple crémentation de pointeur ne suffit pas.
Ce genre d'architecture à cas particuliers est inefficace.
 
 
Le little endian a un autre avantage: si, là où l'on stockait un entier on décide d'en mettre un plus grand, du code ancien reconnaît toujours la valeur si elle tiens dans l'ancien type, car elle occupe le même emplacement.
 
 
Le seul avantage que je vois pour le big endian, c'est qu'il a l'air d'être en ordre quand on le lit dans un éditeur hexadécimal classique qui affiche les octets de gauche à droite. Cruelle illusion.
 
 
D'ailleurs, pendant que j'y suis, ces éditeurs sont monstrueux parce qu'il sont middle-endians: les 2 chiffres hexadécimaux composant les octets sont affichés de droite à gauche comme il sied à un nombre, tandis que les octets sont affichés de gauche à droite comme du texte.
 
Un bon éditeur hexa doit permettre de choisir ces deux sens, mais je n'en ai jamais vu le permettant.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°272561
BENB
100% Lux.
Posté le 19-12-2002 à 09:07:21  profilanswer
 

En fait la question ne se pose pas, les sytemes middle endian ne peuvent normalement pas acceder a un octet mais seulement a un mot (c'est le cas du 68000 par exemple)...

n°273205
blackgodde​ss
vive le troll !
Posté le 19-12-2002 à 17:59:49  profilanswer
 

bin fait un editeur hexa qui inverse les valeurs si tu veux Musaran


---------------
-( BlackGoddess )-
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Mesure du temps CPU d'une partie d'un programmeDelphi 4 + BD : Un moyen pour avoir des nombre vraiment long
int et longliste chaine en c (truc de presque de basse)
Comment convertir un long en String ??Faire un scroller en DHTML dans une partie du site (ou barre de defil)
Lire une partie d'un fichier texte [résolu]Probleme d'acces à la partie ADMIN
Un long timer de plus de 60 000 c possible ?Un FOR trop long ??...
Plus de sujets relatifs à : Inverser partie haute et partie basse d'un long


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR