Bits

En este laboratorio, explorarás cómo se representan los diferentes tipos de información en un equipo.

En esta página, aprenderás qué son los bits, las unidades básicas de datos en informática.

: Bit
DAT-1.A.3

Un bit es una sola unidad de datos que solo puede tener uno de dos valores. Normalmente representamos los dos valores como 0 (apagado) y 1 (encendido).

Como probablemente sepas, la información viaja a través de cables dentro de la computadora, y cada cable es encendido o apagado, sin estados intermedios permitidos. Esta pequeña pieza de información se llama bit, la unidad de información más pequeña posible en el dominio digital.

¿Qué significa el valor de un bit? Por convención, los dos estados de un bit se interpretan como 0 y 1, pero eso no significa que tengan que representar números. Un solo bit puede representar

Pero, ¿qué pasa si el semáforo también necesita un valor amarillo? Es tentador decir que, por ejemplo, 0 voltios en el cable significa rojo, 1 voltio significa amarillo y 2 voltios significa verde. Hace mucho tiempo, había computadoras que funcionaban de esa manera, pero hay buenas razones para quedarse con dos posibles valores por cable.

Leer más ¿Cuáles son las buenas razones?
Gráfico que muestra 'Voltaje de entrada' en el eje horizontal y 'Voltaje de salida' en el eje vertical; el gráfico comienza cerca del origen y se mantiene casi plano durante un tiempo, luego se curva hacia arriba y vuelve a ser casi recto en este nuevo ángulo, luego se curva hacia abajo hasta casi estar plano nuevamente hasta el final; la región inferior plana está etiquetada como 'cutoff' y coloreada de azul; la región central inclinada está etiquetada como 'lineal' y coloreada de rosa; la región superior plana está etiquetada como 'saturación' y coloreada de azul.

El bloque de construcción fundamental de los circuitos informáticos es el transistor. En una computadora digital, la entrada a un transistor es cero o cualquier voltaje que represente uno. Pero los circuitos eléctricos no son perfectos; la entrada puede ser un poco más grande o más pequeña de lo que debería ser.

Este es un gráfico aproximado del comportamiento real de entrada-salida de un transistor. No te preocupes por los detalles; solo note los dos azules plano partes del gráfico. Dentro de la región de "corte", los pequeños cambios en el voltaje de entrada no cambian el voltaje de salida en absoluto; el resultado es siempre cero volts. Del mismo modo, dentro de la región de "saturación", los pequeños cambios de entrada no afectan el voltaje de salida; Este resultado se interpreta como un uno. Así es como se utilizan los transistores como interruptores en un ordenador. Si hubiera tres partes planas de la curva, tal vez nosotros sería tener tres valores posibles para cada cable.

Los transistores son dispositivos versátiles. Cuando se utilizan en la parte central, lineal (rosa), del gráfico, son amplificadores; una pequeña variación en el voltaje de entrada produce una variación grande en el voltaje de salida. Así es como se utilizan para reproducir música en un estéreo.

DAT-1.A.2
En lugar de cables de múltiples valores, usar más de un bit si necesitamos representar más de dos valores posibles. Entonces, para el semáforo, podríamos usar dos bits:
primer bit segundo bit significado
 0  rojo
 1  amarillo
 0  verde
 1    (no usado)

Hay cuatro combinaciones posibles de dos bits, por lo que con dos bits podemos representar hasta cuatro valores diferentes, aunque solo necesitemos tres para el semáforo.

  1. Convéncete a ti mismo de que no hay más combinaciones de dos bits.
  2. Anota todas las combinaciones posibles de tres bits. ¿Cuántas hay?
  3. ¿Cuántas combinaciones de cuatro bits hay?

Cada bit añadido dobles el número de valores que puede representar. Esto significa que representar situaciones complejas no cuesta mucho hardware; diez bits son suficientes para representar más de 1000 valores distintos.

  1. ¿Cuántos valores, exactamente, pueden ser representados por diez bits?
  2. ¿Cuántos bits necesitas para representar los días de la semana?
  3. ¿Cuántos bits necesita para representar un dígito decimal (es decir, para especificar un dígito 0-9)?
: byte y palabra
DAT-1.A.4

Un byte tiene ocho bits.

Una palabra (word) es una secuencia de cuántos bits procesa la CPU a la vez. A partir de 2017, las palabras son de 32 o 64 bits.

Los bits no son caros, pero lo que es caro es el circuito para permitir que el programador use exactamente el menor número de bits para un problema en particular. En cambio, las computadoras modernas generalmente permiten la asignación de memoria en solo dos tamaños: el byte, que está estandarizado a ocho bits, y la palabra, que se define como una secuencia de cuántos bits procesa la CPU a la vez. A partir de 2017, las palabras pueden tener 32 bits o 64 bits de ancho, aunque la mayoría nuevas Los modelos de equipo utilizan 64 bits.

La respuesta exacta para 32 bits es 4,294,967,296, por lo que esta aproximación es bastante cercana.

¿Cuántos valores distintos se pueden representar en 32 bits? No tiene que memorizar la respuesta, porque puede aproximarla rápidamente utilizando el hecho de que 210 = 1024, que es alrededor de 1000. Esto significa que cada diez bits de ancho multiplica el número de valores que se pueden representar por aproximadamente 1000. Entonces, 10 bits permiten alrededor de mil valores, 20 bits es aproximadamente un millón de valores, 30 bits es aproximadamente mil millones y 32 bits permiten más de cuatro mil millones de valores (porque duplicamos los mil millones dos veces más para la diferencia entre 30 y 32).

Es posible que este truco te resulte útil en el examen AP.

Cuatro mil millones de valores parece que debería ser suficiente, pero no lo es si eres un astrónomo o un banquero (o Google o Facebook). Es por eso que ahora tenemos computadoras de 64 bits, que a partir de 2019 son el estándar. (Apple acaba de eliminar el soporte para programas de 32 bits de MacOS).

  1. ¿Cuántos valores diferentes se pueden representar en una palabra de 64 bits? (No uses una calculadora; ¡usa el truco!)

Bytes y caracteres

El uso principal de los bytes de ocho bits es representar caracteres de texto.

  1. ¿Cuántos bits necesitas para representar las 26 letras en inglés y los diez dígitos 0-9?
El uso generalizado de ASCII de ocho bits es la principal razón histórica por la que el byte de ocho bits se convirtió en estándar. (Otra razón es que los circuitos de computadora pueden lidiar más fácilmente con anchos que son potencias de dos).

Las computadoras usaron códigos de caracteres de seis bits de ancho durante muchos años, pero se requieren siete bits para tener letras y puntuación tanto en MAYÚSCULAS como en minúsculas. La primera codificación de caracteres oficialmente reconocida fue el conjunto de caracteres ASCII (American Standard Code for Information Interchange) de siete bits. Incluía un octavo bit opcional para la detección de errores, que se tomó para incluir caracteres acentuados en español, francés, alemán y algunos otros idiomas europeos. Por ejemplo, hay un carácter acentuado en el nombre del desarrollador principal de Snap!, Jens Mönig, que es alemán. (El sonido inglés más cercano es la "u" en "lunch".)

A medida que el uso de las computadoras e Internet se extendió por todo el mundo, la gente quería poder escribir chino, japonés, árabe, cabilio, ruso, tamil, etc. El Unicode El juego de caracteres admite alrededor de 1900 idiomas, utilizando 32 alfabetos modernos y 107 alfabetos históricos que ya no están en uso vivo. El juego completo de caracteres Unicode incluye 136.755 caracteres.

  1. ¿Cuál es el número mínimo de bits necesarios para representar cualquier carácter Unicode?
Leer más La representación computacional real de Unicode es complicada.

La representación más directa de Unicode utiliza una palabra de 32 bits por carácter, que es más que suficiente. Pero los desarrolladores de programas consideran que un uso ineficiente de la memoria de la computadora, y también, una gran cantidad de software antiguo todavía en uso se escribió cuando ocho bits por carácter era estándar. Por lo tanto, los caracteres Unicode generalmente se representan en un multi-byte representación en la que los 128 caracteres ASCII originales ocupan un byte, mientras que otros caracteres pueden requerir hasta cuatro bytes. (También es posible usar una secuencia de varios bytes para decirle a su software de procesamiento de textos que desea usar códigos de un byte o dos bytes para representar un alfabeto no latino en particular).

  1. Esta pregunta es similar a las que verás en el examen AP CSP.
    ¿Cuál de los siguientes NO se puede expresar usando un bit?
    El estado de un interruptor ON/OFF
    El valor de una variable booleana
    El resto al dividir un entero positivo por 2
    La posición de la manecilla de la hora de un reloj