Comprensión profunda del almacenamiento de segmento grande y el almacenamiento de segmento pequeño de la computadora

contenido

1. ¿Qué es big endian y little endian?

2. ¿Por qué hay una distinción entre los modos big endian y small endian?

3. El ejemplo es el siguiente

Preguntas del examen escrito de Baidu 2015 


Antes del estudio de hoy, déjame contarte una pequeña historia.

Hay dos países particularmente poderosos que han estado en guerra durante 36 meses en el pasado, y algo sucedió durante este período, es decir, al comer huevos, el método original era romper el extremo más grande del huevo, pero en ese momento el El abuelo del emperador se debió a que era un niño. Al comer huevos, se rompió los dedos de esta manera, por lo que su padre ordenó que cuando todas las personas comieran huevos, primero deben romper el extremo más pequeño de los huevos, y aquellos que violen la orden. será severamente castigado. Entonces la gente común estaba disgustada por este decreto. Durante el período, hubo muchas rebeliones. Uno de los emperadores murió a causa de él, y el otro perdió su trono. El motivo de la rebelión fue que el rey ministro de otro país Blefuscu instigó Después de que la rebelión amainó, huyó y se refugió en este país. Según las estadísticas, ha habido más de 11.000 personas que preferirían morir antes que romper el extremo pequeño de los huevos para comer huevos. Esto en realidad satiriza el conflicto entre Gran Bretaña y Francia en ese momento. Danny Cohen, un pionero de los protocolos de red, utilizó por primera vez estos dos términos para referirse al orden de los bytes, que luego fue ampliamente aceptado por todos, de ahí el origen de la palabra big endian y little endian.

1. ¿Qué es big endian y little endian?


Modo Big Endian:

Es decir, el byte alto se descarga en el extremo de dirección baja de la memoria y el byte bajo se descarga en el extremo de dirección alta de la memoria. (El modo big-endian es lo que intuitivamente pensamos que es, pero no lo es)

Modo Little Endian:

El byte bajo se coloca en el extremo de dirección baja de la memoria y el byte alto se coloca en el extremo de dirección alta de la memoria.

Será más intuitivo darte dos imágenes:

 Mira las siguientes castañas:

 Viendo que en el entorno VS, los datos se colocan en la dirección baja y el pedido alto se coloca en la dirección alta, es decir, almacenamiento little endian.

2. ¿Por qué hay una distinción entre los modos big endian y small endian?

Esto se debe a que en los sistemas informáticos usamos los bytes como una unidad, cada unidad de dirección corresponde a un byte y un byte tiene 8 bits - 8 bits. Pero en lenguaje C, además de caracteres de 8 bits, hay tipo corto de 16 bits y tipo largo de 32 bits. Además, para procesadores con más de 8 bits, como procesadores de 16 bits o 32 bits, debido al ancho del registro Si es mayor que un byte, entonces debe haber un problema de cómo organizarlo. Esto lleva al modo de almacenamiento big endian y almacenamiento little endian.

3. El ejemplo es el siguiente

Preguntas del examen escrito de Baidu 2015 

Diseñe un programa para determinar la longitud de palabra de la máquina actual

#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;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_53939785/article/details/124253322
Recomendado
Clasificación