Volver a la portadaPrincipios de Computación AP® · Principios de Computación AP · Cambiar asignatura
Empezar gratis
Computación AP · Principios de Computación AP®
AP Computer Science Principles: Datos, algoritmos e impacto · Gran idea 2: Datos

Números binarios y desbordamiento

Tu celular guarda fotos, canciones y mensajes, pero por dentro solo hay interruptores que están encendidos o apagados. ¿Cómo puede una computadora guardar la letra «A», el color de un píxel o el puntaje de un videojuego usando solo dos símbolos? Y si un contador se llena, ¿qué pasa cuando le sumas una unidad más? Al final de esta página lo sabrás.

Bits, bytes y valores posicionales

Un bit es la unidad más pequeña de información: un 0 o un 1. Un byte son 8 bits. Con un solo bit puedes responder una pregunta de sí o no, como «¿el interruptor está encendido?».

Para representar números más grandes, juntamos bits, igual que en el sistema decimal juntamos dígitos. En decimal, cada posición vale 10 veces la de su derecha (1, 10, 100, 1,000…). En binario, cada posición vale 2 veces la de su derecha. ¿Por qué? Porque cada posición solo tiene dos opciones (0 o 1), así que se llena el doble de rápido.

Un byte de 8 bits con los valores posicionales 128, 64, 32, 16, 8, 4, 2 y 1 0128 064 132 116 08 14 02 11 00110101 (un byte)

Los valores posicionales de un byte, de izquierda a derecha, son $128, 64, 32, 16, 8, 4, 2, 1$. Para convertir a decimal, suma los valores de las posiciones que tienen un 1.

Practica★☆☆Sin empezar
Convierte el número binario $1011$ a decimal. Luego convierte el número binario de 8 bits $00110101$ a decimal.

Convierte el número binario $1011$ a decimal. Luego convierte el número binario de 8 bits $00110101$ a decimal.

Resolver
Practica★☆☆Sin empezar
Convierte el número decimal $25$ a un número binario de 8 bits. Muestra los valores posicionales ($128, 64, 32, \ldots$) que usaste.

Convierte el número decimal $25$ a un número binario de 8 bits. Muestra los valores posicionales ($128, 64, 32, \ldots$) que usaste.

Resolver

¿Cuántos valores caben en n bits?

Con 1 bit hay 2 valores (0 y 1). Con 2 bits hay 4 (00, 01, 10, 11). Cada bit nuevo duplica la cantidad, porque puedes poner un 0 o un 1 delante de cada patrón que ya tenías.

Bits Valores distintos Enteros sin signo
1 2 0 a 1
2 4 0 a 3
4 16 0 a 15
8 256 0 a 255
16 65,536 0 a 65,535

Para saber cuántos bits necesitas para identificar $N$ cosas, busca el menor $n$ tal que $2^n \ge N$. Por ejemplo, para 100 estudiantes: $2^6 = 64$ no alcanza, pero $2^7 = 128$ sí. Necesitas 7 bits.

Las unidades de almacenamiento son múltiplos del byte: $1\text{ KB} = 1{,}000$ B, $1\text{ MB} = 1{,}000$ KB y $1\text{ GB} = 1{,}000$ MB. Algunos sistemas usan la convención binaria de $1{,}024$ en lugar de $1{,}000$.

Practica★☆☆Sin empezar
Un bit es un solo 0 o 1, y un byte son 8 bits. a) ¿Cuántos valores distintos se pueden representar con 6 bits? b) ¿Cuántos bytes se necesitan para guardar exactamente 40…

Un bit es un solo 0 o 1, y un byte son 8 bits.

  1. a) ¿Cuántos valores distintos se pueden representar con 6 bits?
  1. b) ¿Cuántos bytes se necesitan para guardar exactamente 40 bits?
Resolver
Practica★★☆Sin empezar
Una escuela con 300 clubes quiere asignar a cada club un número de identificación único, guardado como número binario con la misma cantidad de bits para todos los…

Una escuela con 300 clubes quiere asignar a cada club un número de identificación único, guardado como número binario con la misma cantidad de bits para todos los clubes.

  1. a) ¿Cuál es el número mínimo de bits necesario?
  1. b) Si la escuela agrega un bit más al identificador, ¿cuántos clubes en total puede identificar?
  1. c) Explica en una o dos oraciones por qué agregar un bit duplica la cantidad de valores.
Resolver

Desbordamiento (overflow)

Una computadora guarda cada número en una cantidad fija de bits. ¿Qué pasa si el resultado necesita más bits de los que hay? Ocurre un desbordamiento (overflow): el bit extra no cabe y se pierde, así que el valor guardado es incorrecto.

Es como el odómetro de un carro viejo: cuando llega a $99{,}999$ y avanza una milla, regresa a $00{,}000$.

Suma de 9 más 8 en 4 bits: el quinto bit no cabe y el resultado guardado es 1 1001(9) 1000+(8) 10001(17) El bit de más (el 1 de la izquierda) no cabe en 4 bits. La calculadora guarda 0001 = 1.
Practica★★☆Sin empezar
Una calculadora sencilla guarda números enteros sin signo usando solo 4 bits, así que el valor más grande que puede almacenar es $15$. Aaliyah le pide calcular $9 + 8$.…

Una calculadora sencilla guarda números enteros sin signo usando solo 4 bits, así que el valor más grande que puede almacenar es $15$. Aaliyah le pide calcular $9 + 8$.

  1. a) ¿Cuál es la suma verdadera, escrita en decimal y en binario?
  1. b) ¿Qué ocurre dentro de la calculadora y qué valor termina guardando? (Pista: piensa en lo que pasa con el bit extra.)
  1. c) ¿Cómo se llama este tipo de error?
Resolver
Practica★★★Sin empezar
Marcus está programando un juego de recolectar monedas. El puntaje se guarda en un contador de 8 bits sin signo, y cada moneda vale 25 puntos. El juego permite hasta…

Marcus está programando un juego de recolectar monedas. El puntaje se guarda en un contador de 8 bits sin signo, y cada moneda vale 25 puntos. El juego permite hasta 10,000 monedas en un nivel.

  1. a) ¿Después de cuántas monedas se desborda por primera vez el contador? ¿Qué puntaje muestra la pantalla después de 11 monedas? Supón que el desbordamiento regresa al residuo de dividir entre $256$.
  1. b) Explica por qué un jugador vería esto como un error del juego.
  1. c) ¿Cuál es el número mínimo de bits que necesita Marcus para que el puntaje nunca se desborde, aunque un jugador junte las 10,000 monedas? Muestra los números que respaldan tu respuesta.
Resolver

Errores de redondeo

Otro límite de los bits: muchos números decimales no tienen una representación exacta en binario. Igual que $\tfrac{1}{3} = 0.\overline{3}$ nunca termina en decimal, $0.1$ nunca termina en binario. La computadora debe cortarlo en algún punto y guarda un valor casi igual.

Por eso, en muchos lenguajes, 0.1 + 0.2 da algo como $0.30000000000000004$, y la comparación 0.1 + 0.2 = 0.3 es falsa. Esto se llama error de redondeo (round-off error).

Practica★★☆Sin empezar
En muchos lenguajes de programación, la expresión 0.1 + 0.2 = 0.3 da falso, aunque en la clase de matemáticas es verdadera. a) Explica por qué ocurre. Usa la idea de que…

En muchos lenguajes de programación, la expresión 0.1 + 0.2 = 0.3 da falso, aunque en la clase de matemáticas es verdadera.

  1. a) Explica por qué ocurre. Usa la idea de que las computadoras guardan los números con una cantidad limitada de bits.
  1. b) ¿Cómo se llama este tipo de error?
  1. c) Describe una forma más segura de que un programa compruebe si dos resultados decimales son «iguales».
Resolver

Todo es bits: significado y muestreo

El mismo patrón de bits puede significar cosas distintas. El byte $01000001$ es el número $65$, la letra «A» en ASCII, o el brillo de un píxel. ¿Cómo sabe la computadora cuál es? Por el contexto: el tipo de archivo y el programa que lo abre indican cómo interpretar los bits. Eso es una abstracción: lo que ves (una letra, una foto) esconde los bits de abajo.

Los colores también son números. En muchas pantallas, un color usa 3 bytes: uno para rojo, otro para verde y otro para azul, cada uno de 0 a 255.

El sonido es analógico: cambia de forma continua. Para guardarlo, la computadora hace un muestreo (sampling): mide el nivel de la señal a intervalos regulares y guarda cada medida como un número.

Una onda analógica continua medida en puntos regulares, que son las muestras Línea azul: sonido analógico. Puntos: muestras.

Más muestras por segundo y más bits por muestra dan una grabación más parecida al original, pero el archivo ocupa más espacio.

Practica★★★Sin empezar
El patrón de 8 bits $01000001$ podría significar el número $65$, la letra «A» o el brillo de un píxel en una foto. a) Explica cómo «sabe» una computadora cuál…

El patrón de 8 bits $01000001$ podría significar el número $65$, la letra «A» o el brillo de un píxel en una foto.

  1. a) Explica cómo «sabe» una computadora cuál significado usar para el mismo patrón.
  1. b) La señal de un micrófono se muestrea 1,000 veces por segundo durante 3 segundos. Cada muestra se guarda con 8 bits. ¿Cuántos bytes se necesitan para la grabación?
  1. c) Compara usar 2 bits por muestra con usar 8 bits por muestra. ¿Cuántos niveles distintos permite cada uno y cómo afecta esto qué tan parecida es la grabación digital al sonido analógico original?
Resolver

Vuelve al principio: la computadora usa solo 0 y 1 porque cada bit es un interruptor, y el significado (letra, color, sonido) lo da el contexto. Cuando un contador se llena y le sumas uno más, el bit extra no cabe y ocurre un desbordamiento.

Resumen

Ver todos los ejercicios de este apartado