bit

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 15:46 29 oct 2020 por SeroBOT (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.
Unidades de
Información
Múltiplos de bits
Prefijo del SI
(SI)
Prefijo binario
(IEC 60027-2)
Nombre Símbolo Múltiplo Nombre Símbolo Múltiplo
Kilobit kbit 103 Kibibit Kibit 210
Megabit Mbit 106 Mebibit Mibit 220
Gigabit Gbit 109 Gibibit Gibit 230
Terabit Tbit 1012 Tebibit Tibit 240
Petabit Pbit 1015 Pebibit Pibit 250
Exabit Ebit 1018 Exbibit Eibit 260
Zettabit Zbit 1021 Zebibit Zibit 270
Yottabit Ybit 1024 Yobibit Yibit 280

Bit es el acrónimo de binary digit (o sea de ‘dígito binario’, en español denominado como bit, y en menor medida como bitio).[1]​ Un bit es un dígito del sistema de numeración binario. La capacidad de almacenamiento de una memoria digital también se mide en bits, pues esta palabra tiene varias acepciones.[2]

Lo usual es que un registro digital u otras memorias digitales vinculadas con la computación y/o con las telecomunicaciones, tengan una capacidad de representación de informaciones de por ejemplo 8 bits, 16 bits, 32 bits, 64 bits, etc; una memoria binaria tiene una capacidad efectiva de representación de un bit.[3]

Mientras que en el sistema de numeración decimal se usan diez dígitos (diez símbolos), en el binario se usan solo dos dígitos, el 0 y el 1. Un bit o dígito binario puede representar uno de esos dos valores: 0 o 1.

Se puede imaginar un bit como una bombilla que puede estar en uno de los siguientes dos estados:

apagada apagada o encendida encendida
Memoria de computadora de 1980 donde se pueden ver los bits físicos. Este conjunto de unos 4x4 cm corresponden a 4096 bits.

El bit es la unidad mínima de información empleada en informática, en cualquier dispositivo digital, o en la teoría de la información. Con él, podemos representar dos valores cualesquiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte o sur, etc. Basta con asignar uno de esos valores al estado de "apagado" (0), y el otro al estado de "encendido" (1).

Combinaciones de bits

 
Hay 4 combinaciones posibles con dos bits
Bit 1
Bit 0
apagada 0   apagada 0  
apagada 0   encendida 1  
encendida 1   apagada 0  
encendida 1   encendida 1  

Con un bit podemos representar solamente dos valores o dos diferentes estados, que suelen representarse como 0, 1.[4]​ Para representar o codificar más información en un dispositivo digital, necesitamos una mayor cantidad de bits. Si usamos dos bits, tendremos cuatro combinaciones posibles:

  • 0 0 - Los dos están "apagados"
  • 0 1 - El primero está "apagado" y el segundo "encendido"
  • 1 0 - El primero está "encendido" y el segundo "apagado"
  • 1 1 - Los dos están "encendidos"

Con estas cuatro combinaciones podemos representar hasta cuatro valores o estados diferentes, como por ejemplo, los colores azul, verde, rojo, y magenta.

A través de secuencias de bits, se puede codificar cualquier valor discreto como números, palabras, e imágenes. 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. Mientras que un octeto siempre tiene 8 bits, un byte contiene un número fijo de bits, que no necesariamente deben ser 8. 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.[5]

Valor de posición

En cualquier sistema de numeración posicional, el valor de los dígitos depende de la posición en que se encuentren.

En el sistema decimal, por ejemplo, el dígito 5 puede valer 5 si está en la posición de las unidades, pero vale 50 si está en la posición de las decenas, y 500 si está en la posición de las centenas. 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. Esto también es aplicable a números con decimales.

+-----------+-----------+-----------+-----------+-----------+
|  Centenas |  Decenas  |  Unidades |  Décimas  | Centésimas| ←    Nombre de la posición
+-----------+-----------+-----------+-----------+-----------+
|   100     |    10     |     1     |   1/10    |   1/100   | ←    Valor del dígito decimal
+-----------+-----------+-----------+-----------+-----------+      de acuerdo a su posición
|   10^2    |   10^1    |   10^0    |  10^(-1)  |  10^(-2)  | ←    Valor del dígito decimal
+-----------+-----------+-----------+-----------+-----------+      de acuerdo a su posición
                                    ↑                              expresado en potencias de 10
                       posición de la coma decimal

Por tanto, el número 153,7 en realidad es: 1 centena + 5 decenas + 3 unidades + 7 décimas, es decir:

100 + 50 + 3 + 0,7 = 153,7.

En el sistema binario es similar, 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 cada vez que se mueve hacia la derecha, vale la mitad (2 veces menos).

+-----+-----+-----+-----+-----+
| 16  |  8  |  4  |  2  |  1  | ←  Valor del bit de acuerdo a su posición
+-----+-----+-----+-----+-----+     expresado en números
| 2^4 | 2^3 | 2^2 | 2^1 | 2^0 | ←  Valor del bit de acuerdo a su posición
+-----+-----+-----+-----+-----+     expresado en forma de potencias de 2

Abajo vemos representado el número 19.

16 + 2 + 1 = 19.
16
8
4
2
1
← Valor de posición
encendida apagada apagada encendida encendida Representación gráfica
de los bits como bombillas
encendidas y apagadas
1
0
0
1
1
← Dígitos binarios (bits)

También se pueden representar valores fraccionarios. Los números reales se pueden representar con formato de coma fija o de coma flotante. Abajo vemos el número 5,25 representado en una forma binaria de coma fija.

4 + 1 + 0,25 = 5,25
4
2
1
1/2
1/4
← Valor de posición
encendida apagada encendida apagada encendida Representación gráfica
de los bits como bombillas
encendidas y apagadas
1
0
1
0
1
← Dígitos binarios (bits)

La de arriba es una representación en coma fija de un número real en formato binario. 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.

Subíndices

Cuando se trabaja con varios sistemas de numeración o cuando no está claro con cual se está trabajando, es típico usar un subíndice para indicar el sistema de numeración con el que se ha representado un número. El 10 es el subíndice para los números en el sistema decimal y el 2 para los del sistema binario. En los ejemplos de abajo se muestran dos números en el sistema decimal y su equivalente en binario. Esta igualdad se representa de la siguiente manera:

  • 1910 = 100112
  • 5,2510 = 101,012

Bits más y menos significativos

Un conjunto o grupo de bits, como por ejemplo un byte, representa un conjunto de elementos ordenados. Se llama bit más significativo (MSB) al bit que tiene un mayor peso (mayor valor) dentro del conjunto, análogamente, se llama bit menos significativo (LSB) al bit que tiene un menor peso dentro del conjunto.

En un byte, el bit más significativo es el de la posición 7, y el menos significativo es el de la posición 0.

+---+---+---+---+---+---+---+---+
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ← Posición del bit
+---+---+---+---+---+---+---+---+
|128|64 |32 |16 | 8 | 4 | 2 | 1 | ← Valor del bit de acuerdo a su posición
+---+---+---+---+---+---+---+---+
  ↖ Bit más significativo     ↖ Bit menos significativo

En una palabra de 16 bits, el bit más significativo es el de la posición 15 y el menos significativo el de la posición 0.

+----+----+----+----+----+----+---+---+---+---+---+---+---+---+---+---+
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ←  Posición del bit
+----+----+----+----+----+----+---+---+---+---+---+---+---+---+---+---+
|2^15|2^14|2^13|2^12|2^11|2^10|512|256|128|64 |32 |16 | 8 | 4 | 2 | 1 | ←  Valor del bit de acuerdo
+----+----+----+----+----+----+---+---+---+---+---+---+---+---+---+---+     a su posición
  ↖ Bit más significativo                                           ↖ Bit menos significativo

Tomemos, por ejemplo, el número decimal 27 codificado en forma binaria en un octeto:

-> 0 0 0 1 1 0 1 1

Aquí, el primer '0', el de la izquierda, (que se corresponde con el coeficiente de ), es el bit más significativo, siendo el último '1', el de la derecha, (que se corresponde con el coeficiente de ), el menos significativo.

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. Esto es análogo al sistema decimal, en donde el dígito más significativo es el de la izquierda y el menos significativo el de la derecha, como por ejemplo, en el número 179, el dígito más significativo, el que tiene mayor valor, es el 1, (el de las centenas), y el menos significativo, el 9, (el de las unidades).

Este concepto de significatividad se extiende al conjunto de bytes que representan números o valores numéricos en las computadoras.

Little endian y Big endian

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. Una máquina little endian asigna los bytes menos significativos en el extremo más bajo de la memoria, mientras que una máquina big endian asigna los bytes más significativos en el extremo más alto. 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).

Por ejemplo, consideremos el número hexadecimal entero AABBCCDD, de 32 bits (4 bytes), localizado en la dirección 100 de la memoria. 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)

100 101 102 103
... DD CC BB AA ...

Big-endian (como Motorola)

100 101 102 103
... AA BB CC DD ...

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)

103 102 101 100
... AA BB CC DD ...

Big-endian (como Motorola)

103 102 101 100
... DD CC BB AA ...

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. Los registros del procesador, que pueden ser de 4 a 64 bits, y más, también tienen sus bits en el mismo orden en ambos tipos de máquina. La diferencia entre little y big endian solo existe externamente, en el orden en que los bytes se representan en memoria.

Arquitecturas de 4, 8, 16, 32 y 64 bits

Cuando se habla de CPUs o microprocesadores de 4, 8, 16, 32, 64 bits, se refiere al tamaño, en número de bits, que tienen los registros internos del procesador y también a la capacidad de procesamiento de la Unidad aritmético lógica (ALU). Un microprocesador de 4 bits tiene registros de 4 bits y la ALU hace operaciones con los datos en esos registros de 4 bits, mientras que un procesador de 8 bits tiene registros y procesa los datos en grupos de 8 bits.

Los procesadores de 16, 32 y 64 bits tienen registros y ALU de 16, 32 y 64 bits respectivamente, y generalmente pueden procesar los datos, tanto en el tamaño en bits de sus registros como, dependiendo de su diseño, en determinados submúltiplos de estos. Así, un procesador de 16 bits puede procesar los datos en grupos de 8 y 16 bits, comportándose como si fuera un procesador tanto de 8 como de 16 bits. Un procesador de 32 bits puede procesar los datos en grupos de 8, 16 y 32 bits, y el procesador de 64 bits puede procesar los datos en grupos de 8, 16, 32 y 64 bits. Para poder hacer esto, los procesadores de 16, 32 y 64 bits generalmente tienen sus registros divididos en otros registros más pequeños. Así, los registros de un procesador de 32 bits, por ejemplo, pueden estar divididos a su vez en registros de 16 y 8 bits y puede hacer operaciones aritméticas, lógicas, de comparaciones, y otras, con cualquiera de sus registros en cualquiera de estos tamaños.

Cuando se habla de procesadores de, digamos 32 bits, nos referimos a su capacidad de procesar datos en hasta 32 bits simultáneamente (también puede procesar datos en 8 y 16 bits). La denominación de "microprocesador de 32 bits" no se refiere al tamaño del bus de datos del CPU ni del bus de direcciones, sino a su capacidad de trabajar normalmente con los datos en el número máximo de bits (salvo alguna excepción).

Por ejemplo, los primeros procesadores de la arquitectura x86, el Intel 8086 y el Intel 8088, eran procesadores de 16 bits, porque tenían registros de 16 bits (y de 8 bits) y sus unidades aritmético lógicas podían realizar operaciones de 16 bits (y de 8 bits). Sin embargo, exteriormente, el 8086 tenía un bus de datos de 16 bits y podía mover datos desde y hacia el CPU en bloques de 8 y 16 bits), mientras que el 8088 tenía un bus de datos de solo 8 bits, y también podía mover datos de 8 y 16 bits desde y hacia el CPU, sin embargo, como su bus de datos era de solo 8 bits, para mover 16 bits de datos tenía que hacer dos operaciones de lectura o escritura, de 8 bits, por su limitado bus de datos. 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.

Bit en las películas

En la película Tron, un bit está representado por una forma poliédrica de color blanco que es un compuesto de dodecaedro e icosaedro. Solo puede decir "sí" (encendido) y "no" (apagado). Cuando el bit dice "sí" cambia brevemente en un octaedro amarillo, y cuando dice que "no" se transforma en una forma de punta roja. Si se alarma repite la palabra varias veces, por ejemplo: "¡No no no no no no!".

Véase también

Notas y referencias

  1. Diccionario Panhispánico de Dudas (2005), revisado el 11 de marzo de 2015.
  2. Standardized units for use in information technology / "What is a Megabyte ...?", sitio digital 'University of Cambridge':
    Cita: The unit of information capacity shall be '1 bit'. The name 'bit' is derived from 'binary digit' and shall not be abbreviated further. The quantity information capacity is dimensionless, because it refers to a number of binary symbols. / One 'bit' is the information capacity equivalent to one binary digit. It represents the ability to handle the knowledge about which one of two possible complementary events has happened.
    Traducción al español: La unidad básica de capacidad de información es el 'bit'. El término 'bit' deriva del inglés 'binary digit' (o sea, es una abreviación de lo que en español se diría 'dígito binario'), y lo usual es que este término no sea representado por su inicial o por alguna otra forma abreviada. La capacidad de información siempre se refiere al número de símbolos binarios que por ejemplo contiene una memoria, y por tanto es un valor escalar. / Un 'bit' es la capacidad de información de por ejemplo una memoria binaria, que de alguna forma es capaz de almacenar un dígito binario, lo que permite manejar el conocimiento de algo para lo que solamente existirían dos posibilidades de ocurrencia.
  3. Eduardo Sánchez, Représentation de l'information, sitio digital 'Swiss Federal Institute of Technology / Logic Systems Laboratory'.
  4. Definición: Bit, sitio digital 'Definición_de'.
  5. Unidades de medida en Informática, sitio digital 'Configurar equipos', 28 de junio de 2007.

Bibliografía

Enlaces externos