OT: Pregunta de C

Daniel Serpell daniel_serpell en yahoo.com
Mie Nov 24 15:09:28 CLST 2004


Hola!

El Wed, Nov 24, 2004 at 02:25AM, Felipe Cristian Barriga Richards (Lista) escribio:
> Horst von Brand wrote:
> > No, big-endian no tiene ventajas frente a little-endian.
> >
> Que yo sepa hay ventajas (o desventajas) entre ambos.
> En uno de los 2 era mas rapido saber si un entero era positivo o
> negativo (se leia el primer bit/byte ?) y en el otro habia una cosa
> similar que era mas rapido de efectuar (¿?).

En todo computador con memoria RAM (random-access-memory, memoria de
acceso aleatorio) uniforme, el acceso a cualquier bit de memoria
toma el mismo tiempo. Aunque los sistemas actuales son cada vez más
no-uniformes (NUMA), esto es a escalas mucho mayores a un par de
bytes, por lo que puedes considerar que el acceso a cualquier bit
de una palabra cuesta lo mismo.
 
> Ojala alguien sepa estos importantisimos detalles que no dejan dormir a
> nadie en paz.

En realidad las diferencias entre LE y BE sólo producen problemas cuando
se re-interpretan los bytes en memoria como un bloque de datos, por
lo que tiene inportancia cuando comunicas por medio de datos binarios
dos computadores.

Mucha gente usa como estándar de interoperabilidad el "network-order"
definido por TCP/IP, que es BE. Por esto, uno podría esperar un ligero
(probablemente no medible) aumento de velocidad en el proceso de
información de red en computadores BE, ya que no es necesario revolver
los bytes antes de interpretar. Muchos lenguajes de programación
orientados a interoperabilidad o a redes usan ese estándar cuando
convierten enteros en datos binarios, por ejemplo Java y Pike.

        Daniel.



Más información sobre la lista de distribución Linux