[4] Para representar o codificar más información en un dispositivo digital, necesitamos una mayor cantidad de bits.
Con estas cuatro variaciones podemos representar hasta cuatro valores o estados diferentes, como por ejemplo, los colores azul, verde, rojo, y magenta.
Cuatro bits forman un nibble, y pueden representar hasta 24 = 16 valores diferentes; ocho bits forman un octeto, y se pueden representar hasta 28 = 256 valores diferentes.
En general, con un número n de bits pueden representarse hasta 2n valores o estados diferentes.
Nota: Un byte y un octeto no son lo mismo.
En los computadores antiguos, el byte podría estar conformado por 6, 7, 8, o 9 bits.
Hoy en día, en la inmensa mayoría de los computadores, y en la mayoría de los campos, un byte tiene 8 bits, siendo equivalente al octeto, pero hay excepciones.
Generalizando, cada vez que nos movemos una posición hacia la izquierda el dígito vale 10 veces más, y cada vez que nos movemos una posición hacia la derecha, vale 10 veces menos.
El sistema binario funciona similarmente, excepto que cada vez que un dígito binario (bit) se desplaza una posición hacia la izquierda vale el doble (2 veces más), y hacia la derecha vale la mitad (2 veces menos).
Aunque la representación de números reales en coma flotante es diferente de lo que aquí se muestra, el esquema da una idea una parte del concepto.
La representación en coma flotante es similar a la notación científica en una calculadora de mano, solo que en vez números decimales se usan números binarios y el exponente no está en base 10 sino en base 2.
En los ejemplos de abajo se muestran dos números en el sistema decimal y su equivalente en binario.
En cualquier caso, el bit más significativo es el que generalmente se representa en el extremo izquierdo y el menos significativo el del extremo derecho.
Little endian y big endian se refieren al orden que las máquinas asignan a los bytes que representan números o valores numéricos.
En los computadores, cada byte se identifica con su posición en la memoria (dirección).
Cuando se manejan números de más de un byte, estos bytes también deben estar ordenados de menor a mayor, indicando la posición del byte menos significativo y del byte más significativo.
De este modo, un byte con el número decimal 27 se almacenaría en una máquina little endian igual que en una máquina big endian, ya que solo ocupa un byte.
Sin embargo, para números más grandes los bytes que los representan se almacenarían en distinto orden en cada arquitectura.
Este aspecto es particularmente importante en la programación en lenguaje ensamblador o en código máquina, ya que algunas máquinas consideran el byte situado en la dirección más baja de la memoria el menos significativo (arquitectura little endian, como los procesadores Intel) mientras que otras consideran que ese es el byte más significativo (arquitectura big endian, como los procesadores Motorola).
El número ocuparía las posiciones desde la 100 a la 103, pero dependiendo de si la máquina es little o big endian, los bytes se almacenarían de diferente manera: Little endian (como Intel) Big endian (como Motorola) En las imágenes de arriba, en donde se representan las posiciones de memoria 100, 101, 102 y 103 creciendo de izquierda a derecha, «parece» que la representación big endian es más natural, ya que el número AABBCCDD lo podemos leer correctamente (ver figura), mientras que en la representación little endian parece que el número está al revés, o «patas arriba».
Sin embargo, no hay nada que nos impida imaginar que las direcciones de memoria «crecen» de derecha a izquierda, y al observar la memoria de esta manera, la representación little endian «se ve natural» y es la big endian la que «parece» al revés, como se muestra en las figuras de abajo.
Little endian (como Intel) Big endian (como Motorola) Independiente de si la máquina es de arquitectura little endian o big endian, los bits dentro de cada byte siempre están en el mismo orden, con el bit más significativo a la izquierda y el menos significativo a la derecha.
La diferencia entre little y big endian solo existe externamente, en el orden en que los bytes se representan en memoria.
Esto era completamente transparente, los dos procesadores ejecutaban exactamente el mismo conjunto de instrucciones de 16 bits, solo que el 8088 era más lento cada vez que tenía que leer o escribir 16 bits de datos hacia o desde la memoria.