Différence : en mode big-endian, l'octet de données de mot élevé est stocké dans l'adresse basse, et l'octet de données de mot faible est stocké dans l'adresse haute contrairement au mode de stockage big-endian, dans le mode de stockage petit-boutiste Au milieu, l'adresse basse stocke l'octet faible des données de mot et l'adresse haute stocke l'octet élevé de données de mot.
L'environnement d'exploitation de cet article : système Windows 7, ordinateur Dell G3.
Recommandations associées : "Introduction à la programmation"
La différence entre le mode big endian et le mode little endian
En plus du type char 8 bits en langage C, il existe également un type court 16 bits et un type long 32 bits (selon le compilateur spécifique pour les processeurs de plus de 8 bits, tels que 16). -bit Ou pour un processeur 32 bits, puisque la largeur du registre est supérieure à un octet, il doit y avoir un problème sur la façon d'organiser plusieurs octets. Cela conduit au mode de stockage big-endian et au mode de stockage small-endian.
Mode big endian :
L'octet de poids fort des données de mot est stocké dans l'adresse basse, tandis que l'octet de poids faible des données de mot est stocké dans l'adresse haute.
Mode de stockage Little Endian :
Contrairement au mode de stockage Big Endian, en mode de stockage Little Endian, l'octet faible des données de mot est stocké dans l'adresse basse. stocke l'octet de poids fort des données de mots.
Par exemple, le nombre 0x1234 de 16 bits est stocké dans la mémoire du processeur en mode petit-endien (en supposant qu'il soit stocké à partir de l'adresse 0x4000) :
|
0x4000
|
0x4001 td> |
||||||||||||
|
0x34 | 0x12 |
Adresse mémoire |
0x4000 |
0x4001 |
Contenu du stockage | 0x12 | 0x34 |
Adresse mémoire | 0x4000 td > | 0x4001 | 0x4002 | 0x4003 |
Contenu du stockage | 0x12 | 0x34 | 0x56 | 0x78 |
int main() { short int x; char x0,x1; x=0x1122; x0=*((char*)&x); //低地址单元 ,或者((char*)&x)[0]; x1=*((char*)&x + 1); //高地址单元,或者((char*)&x)[1]; printf("x0=%x\nx1=%x\n",x0,x1); }Si x0=0x11, c'est big endian ; si x0=0x22, c'est little endian....Vous voulez en savoir plus Pour les articles, s'il vous plaît visitez le site Web PHP chinois ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!