3. Punto Fijo

3.1. Little Endian vs Big Endian

Cuando hablamos de Little Endian y Big Endian, nos referimos al orden en que los bytes se almacenan en la memoria los ceros y unos en una computadora para representar valores numéricos.

Los datos en la memoria se almacenan como secuencias de bytes. Sin embargo, el orden en el que estos bytes se organizan puede variar según la arquitectura del sistema:

  • Little Endian → El byte menos significativo (LSB, Least Significant Byte) se almacena primero (en la dirección de memoria más baja).
  • Big Endian → El byte más significativo (MSB, Most Significant Byte) se almacena primero (en la dirección de memoria más baja).
Supongamos que queremos almacenar el número 0x12345678 (este entero se almacena en 4 bytes) en memoria.

Su almacenamiento como Big Endian sería:
Dirección |  Valor
-------------------
  1.   0x1000  |  12
  2.   0x1001  |  34
  3.   0x1002  |  56
  4.   0x1003  |  78
Aquí, el byte más significativo (0x12) se guarda en la dirección más baja (0x1000).

Su almacenamiento como Little Endian sería:
Dirección |  Valor
-------------------
  1.   0x1000  |  78
  2.   0x1001  |  56
  3.   0x1002  |  34
  4.   0x1003  |  12
Aquí, el byte menos significativo (0x78) se guarda en la dirección más baja (0x1000).



¿Dónde se Usa Cada Uno?
  • Big Endian: Se usa en arquitecturas como Redes (TCP/IP) y algunos procesadores como los PowerPC y antiguas arquitecturas Motorola.

  • Little Endian: Es el formato usado por Intel x86 y la mayoría de las arquitecturas modernas.


Conclusión:
Si vamos a trabajar y realizar operaciones binarias, tomando bit a bit DEBEMOS saber el orden en que se guardan en memoria para poder hacer las opeaciones de manera correcta!!.

  • Little Endian: Guarda el byte menos significativo primero.
  • Big Endian: Guarda el byte más significativo primero.
Códido en C++ para determinar si el equipo e Little Endian o Big Endian.

Veamos un código fuente para determinar si el harward es Little o Big Endian.