Compréhension approfondie du stockage de grands segments informatiques et du stockage de petits segments

teneur

1. Qu'est-ce que le big endian et le little endian

2. Pourquoi y a-t-il une distinction entre les modes big et small endian ?

3. L'exemple est le suivant

Questions de l'examen écrit Baidu 2015 


Avant l'étude d'aujourd'hui, laissez-moi vous raconter une petite histoire

Il y a deux pays particulièrement puissants qui ont été en guerre pendant 36 mois dans le passé, et quelque chose s'est passé pendant cette période, c'est-à-dire que lorsqu'on mangeait des œufs, la méthode originale consistait à casser l'extrémité la plus large de l'œuf, mais à ce moment-là, le le grand-père de l'empereur devait être un enfant. En mangeant des œufs, il s'est cassé les doigts de cette façon, alors son père a ordonné que lorsque tout le monde mange des œufs, ils doivent d'abord casser le plus petit bout des œufs, et ceux qui violent l'ordre sera sévèrement puni. " Alors les gens du peuple ont été dégoûtés par ce décret. Pendant cette période, il y a eu de nombreuses rébellions. L'un des empereurs est mort à cause de cela et l'autre a perdu son trône. La raison de la rébellion était que le roi ministre d'un autre pays, Blefuscu, avait incité Après que la rébellion se soit apaisée, il s'est enfui pour se réfugier dans ce pays. Selon les statistiques, il y a eu plus de 11 000 personnes qui préféreraient mourir plutôt que de casser le petit bout des œufs pour manger des œufs. Cela fait la satire du conflit entre la Grande-Bretagne et la France à cette époque. Danny Cohen, un pionnier des protocoles réseau, a d'abord utilisé ces deux termes pour désigner l'ordre des octets, qui a ensuite été largement accepté par tous, d'où les mots big endian et little endian.

1. Qu'est-ce que le big endian et le little endian


Mode gros-boutiste :

C'est-à-dire que l'octet de poids fort est déchargé à l'extrémité d'adresse basse de la mémoire, et l'octet de poids faible est déchargé à l'extrémité d'adresse haute de la mémoire. (Le mode Big-endian est ce que nous pensons intuitivement, mais ce n'est pas le cas)

Mode petit-boutiste :

L'octet de poids faible est placé à l'extrémité d'adresse basse de la mémoire et l'octet de poids fort est placé à l'extrémité d'adresse haute de la mémoire.

Il sera plus intuitif de vous donner deux images :

 Regardez les châtaignes suivantes :

 Étant donné que dans l'environnement VS, les données sont placées à l'adresse basse et l'ordre supérieur est placé à l'adresse haute, c'est-à-dire le stockage little endian.

2. Pourquoi y a-t-il une distinction entre les modes big et small endian ?

En effet, dans les systèmes informatiques, nous utilisons les octets comme une unité, chaque unité d'adresse correspond à un octet et un octet est de 8 bits - 8 bits. Mais en langage C, en plus du caractère 8 bits, il existe un type court 16 bits et un type long 32 bits. De plus, pour les processeurs de plus de 8 bits, tels que les processeurs 16 bits ou 32 bits, en raison à la largeur du registre Si elle est supérieure à un octet, alors il doit y avoir un problème d'organisation. Cela conduit au mode de stockage big endian et au stockage little endian.

3. L'exemple est le suivant

Questions de l'examen écrit Baidu 2015 

Concevoir un programme pour déterminer la longueur de mot de la machine actuelle

#include<stdio.h>
int main()
{
	int ret = check_sys();
	if (ret == 1)
		printf("small\n");
	else
		printf("big\n");
	return 0;
}
int check_sys()
{
	int a = 1;
	char* p = (char*)&a;
	if (*p == 1)
		return 1;
	else
		return 0;
}

Je suppose que tu aimes

Origine blog.csdn.net/weixin_53939785/article/details/124253322
conseillé
Classement