[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [escepticos] ... y dejo el tema del PDF



Hola,

Eloy Anguiano Rey dijo:
>> Los procesadores Intel son little-endian y los PowerPC son big-endian.
>> La
>> "endian-ness" de los procesadores se refiere a la hora de codificar los
>> datos. Cuando un PowerPC quiere almacenar en memoria estos 32-bit:
>> 01020304, los almacena así: 01020304, eso es big-endian. Sin embargo, en
>> una arquitectura IA-32, típica de Intel, si quieres almacenar 01020304,
>> internamente se está almacenando 04030201, eso es little-endian.
> Falso.
> El little-endian típico de los Intel significa que ponemos los bytes más
> significativos en posiciones de memoria más altas. El big-endian es
> justo al contrario. La representación que has puesto es el resultado de
> poner en una determinada posición sobre el papel el cero de memoria y
> utilizar el sistema de numeración árabe. De igual forma te podría decir
> que big-endian es 04030201 y little-endian 01020304 sin que fuese
> incorrecto.

Cualquier depurador, editor hexadecimal de ficheros o volcador utiliza la
convención que he utilizado yo, así que creo que era entendible. Cuando
haces printf("%x",puntero); es lo que obtienes.

Si nos ponemos ultra-quisquillosos, hablar de direcciones altas y bajas en
memoria siempre es cuestión de discusión, puesto que la pila crece de
forma inversa, y siempre da lugar a confusiones cuando decimos una
posición de memoria más alta o más baja :-D

Creo que lo que importa para al endian-ness es analizar una palabra
(típicamente de 32-bit en los procesadores de los que hablamos), y para
analizarla, la forma más sencilla es volcarla con un %x en C y ver si es
01020304 o 04030201. Eso es a lo que me refería.

-- 
Agur
  txipi