
Memoria, bits y bytes
En términos generales, la memoria es la capa fundacional del computo, sobre la que descansan las estructuras de datos.
La data es almacenada en memoria en forma de bytes, y por ende, en bits; en sus respectivas direcciones.
Los bytes en memoria pueden «apuntar» a otros bytes en memoria, así como almacenar referencias a otra data.
La cantidad de memoria disponible en una computadora es limitada, convirtiéndola en un valioso recurso; por tanto, hay que limitar la cantidad de la misma que un algoritmo puede utilizar para su ejecución, considerando su complejidad en el espacio.
Acceder a un byte o a un número fijo de bytes es una operación elemental, que puede ser tratada como una unidad operacional de computo. Por ejemplo, acceder a 4 bytes u 8 bytes en el caso de números enteros de 32-bit & 64-bit, respectivamente.
Bit
Acrónimo de Binary Digit
. El bit es la unidad fundamental de información en ciencias de la computación; este representa uno de los dos estados binarios, típicamente 0 y 1. (false/true, off/on). Cualquier data almacenada en una computadora, a nivel básico, está representada en bits.
Byte
Es un grupo de 8 bits. Por ejemplo, 01101000 equivale a 1 byte.
Un único byte puede representar hasta 256 valores diferentes (2^8).
Dado que un número binario
es un número expresado con solo dos símbolos, 0 y 1, un byte efectivamente puede representar todos los números entre 0 y 255, inclusive en formato binario.
Los siguientes bytes representan los números 1, 2, 3 y 4 en formato binario:
1: 00000001
2: 00000010
3: 00000011
4: 00000100
Entero de tamaño fijo (Fixed-width integer)
Es un número entero representado por un tamaño fijo de bits. Por ejemplo, un entero de 32-bits es un entero representado por 4 bytes, y uno de 64-bits es representado por 8 bytes.
El número 1 representado como entero de 32-bits, con sus bytes claramente separados, luce así:
00000000 00000000 00000000 00000001
La representación como entero de 64-bits del número 10, es la siguiente:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00001010
Independientemente de cuan grande sea el número entero, si es declarado de tamaño fijo, siempre será representado como un conjunto de 4 u 8 bytes según sea el caso.
En consecuencia, las operaciones aplicadas sobre datos de tipo fixed-width integer requerirán de un número constante de bits a ser manipulados.