Unidad 2

Representación de números e información,
operaciones binarias

Fundamentos en Ciencias de la Computación

Tres preguntas para la clase

  • ¿Cómo representamos números?
  • ¿Cómo representa una computadora texto e información?
  • ¿Cómo opera con esa información?

Fundamentos en Ciencias de la Computación

Hoja de ruta

  1. Sistemas de numeración
  2. Representación de información en computadoras
  3. Operaciones en sistema binario

Fundamentos en Ciencias de la Computación

1. Sistemas de numeración

Fundamentos en Ciencias de la Computación

Sistema decimal

Fundamentos en Ciencias de la Computación

9240

Todos sabemos leer este número.

Pero:

¿por qué significa eso y no otra cosa?

Fundamentos en Ciencias de la Computación

Sabemos que:

Representamos números usando:

  • símbolos
  • posiciones

Cada dígito vale algo distinto según el lugar en el que aparece.

Fundamentos en Ciencias de la Computación

Sistema decimal

  • Usa 10 símbolos: 0 a 9
  • Su base es 10
  • Es un sistema posicional

Fundamentos en Ciencias de la Computación

Valor posicional

Cada posición representa una potencia de 10.

... 10^3 10^2 10^1 10^0

Fundamentos en Ciencias de la Computación

Ejemplo en decimal

9240 =

9 x 10^3

+ 2 x 10^2

+ 4 x 10^1

+ 0 x 10^0

Fundamentos en Ciencias de la Computación

¿Y si hay decimales?

480.52 =

4 x 10^2

+ 8 x 10^1

+ 0 x 10^0

+ 5 x 10^-1

+ 2 x 10^-2

Fundamentos en Ciencias de la Computación

Idea clave

Un número es:

suma de (dígito x potencia de la base)

Fundamentos en Ciencias de la Computación

Generalización

Todo sistema de numeración tiene:

  • una base B
  • dígitos desde 0 hasta B-1
  • pesos posicionales que son potencias de B

Fundamentos en Ciencias de la Computación

Pregunta:

¿Qué cambia si cambiamos la base?

Fundamentos en Ciencias de la Computación

Sistema binario

Fundamentos en Ciencias de la Computación

La misma idea, con otra base

En binario:

  • la base es 2
  • los dígitos posibles son 0 y 1

Fundamentos en Ciencias de la Computación

La misma idea, con otra base

En binario:

  • la base es 2
  • los dígitos posibles son 0 y 1

Fundamentos en Ciencias de la Computación

Todo sistema de numeración tiene:

  • una base B
  • dígitos desde 0 hasta B-1
  • pesos posicionales que son potencias de B

Pesos en binario

Cada posición representa una potencia de 2.

... 2^3 2^2 2^1 2^0

Fundamentos en Ciencias de la Computación

Ejemplo en binario

101₂ =

1 x 2^2

+ 0 x 2^1

+ 1 x 2^0

= 5

Fundamentos en Ciencias de la Computación

Algunas equivalencias

2 = 10₂

5 = 101₂

9 = 1001₂

Fundamentos en Ciencias de la Computación

¿Por qué binario?

Porque muchos sistemas electrónicos trabajan naturalmente con dos estados:

  • apagado / encendido
  • falso / verdadero
  • voltaje ausente / voltaje presente

Fundamentos en Ciencias de la Computación

Resumiendo...

El binario no es un sistema raro.

Es el mismo concepto que decimal, pero en base 2.

Fundamentos en Ciencias de la Computación

Conversión entre sistemas

Fundamentos en Ciencias de la Computación

De decimal a binario

Para convertir un entero a binario:

  1. dividir por 2
  2. guardar el resto
  3. repetir con el cociente
  4. detenerse cuando el cociente sea 0

Fundamentos en Ciencias de la Computación

Tomar los restos del último al primero

Ejemplo

12 / 2 = 6 resto 0

6 / 2 = 3 resto 0

3 / 2 = 1 resto 1

1 / 2 = 0 resto 1

Resultado: 1100₂

Fundamentos en Ciencias de la Computación

Regla importante

Los restos se toman del último al primero

o de abajo hacia arriba

Fundamentos en Ciencias de la Computación

De binario a decimal

Para pasar de binario a decimal:

  • multiplicamos cada dígito por su potencia de 2
  • luego sumamos

Fundamentos en Ciencias de la Computación

Ejemplo

1101₂ =

1 x 2^3

+ 1 x 2^2

+ 0 x 2^1

+ 1 x 2^0

= 13

Fundamentos en Ciencias de la Computación

2. Representación de información en computadoras

Fundamentos en Ciencias de la Computación

Nuevo problema

El binario funciona bien.

Pero tiene una dificultad:

los números se vuelven largos

Ejemplo: 110010101011

Fundamentos en Ciencias de la Computación

Sistema hexadecimal

  • Base: 16
  • Símbolos: 0 a 9 y A a F

Equivalencias:

A=10 B=11 C=12 D=13 E=14 F=15

Fundamentos en Ciencias de la Computación

Todo sistema de numeración tiene:

  • una base B
  • dígitos desde 0 hasta B-1
  • pesos posicionales que son potencias de B

Relación con binario

2^4 = 16

Entonces:

1 dígito hexadecimal = 4 bits

Fundamentos en Ciencias de la Computación

Ejemplo

Binario:

1100 1010

Hexadecimal:

C A

Fundamentos en Ciencias de la Computación

Conversión binario -> hexadecimal

Proceso:

  1. agrupar en bloques de 4 bits
  2. convertir cada bloque

Ejemplo:

10101111₂ -> 1010 1111 -> AF₁₆

Fundamentos en Ciencias de la Computación

Conversión hexadecimal -> binario

Cada dígito hexadecimal se transforma en 4 bits.

Ejemplo:

Fundamentos en Ciencias de la Computación

2 = 0010

5 = 0101

9 = 1001

A = 1010

F = 1111

¿Por qué usar hexadecimal?

  • es más compacto que binario
  • es fácil de convertir
  • es ampliamente usado en informática

Ejemplos:

  • direcciones de memoria
  • colores web como #FF00AA

Fundamentos en Ciencias de la Computación

Idea clave

Hexadecimal no reemplaza al binario.

Lo simplifica para humanos.

Fundamentos en Ciencias de la Computación

Nueva pregunta

Hasta ahora representamos números.

¿Cómo representa una computadora texto?

Fundamentos en Ciencias de la Computación

Código ASCII

Fundamentos en Ciencias de la Computación

Código ASCII

ASCII asigna un número a cada carácter.

Ejemplos:

  • 'A' = 65
  • '@' = 64
  • 'd' = 100

Fundamentos en Ciencias de la Computación

Un mismo carácter, varias representaciones

'A' =

  • 65 en decimal
  • 41 en hexadecimal
  • 1000001 en binario

Fundamentos en Ciencias de la Computación

Idea clave

Todo texto en una computadora es:

una secuencia de números representados en binario

Fundamentos en Ciencias de la Computación

Bit

Unidad mínima de información.

Un bit puede valer:

  • 0
  • 1

Fundamentos en Ciencias de la Computación

Byte

1 byte = 8 bits

En este contexto:

un byte permite representar un carácter simple

Fundamentos en Ciencias de la Computación

Ejemplo simple

"Hola"

Tiene 4 caracteres.

Entonces:

"Hola" -> 4 bytes

Fundamentos en Ciencias de la Computación

Unidades de almacenamiento

  • 1 KB = 1024 bytes
  • 1 MB = 1024 KB
  • 1 GB = 1024 MB

Fundamentos en Ciencias de la Computación

Acabamos de ver:

  • binario -> representación básica
  • hexadecimal -> simplificación
  • ASCII -> significado
  • bytes -> medida de almacenamiento

Fundamentos en Ciencias de la Computación

3. Operaciones
en sistema binario

Fundamentos en Ciencias de la Computación

Nueva pregunta

Si una computadora representa números en binario:

¿también puede operar con ellos?

Fundamentos en Ciencias de la Computación

Idea básica

El sistema binario también permite operar.

La lógica es la misma que en decimal,

pero en base 2.

Fundamentos en Ciencias de la Computación

Suma binaria

Reglas básicas:

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 10

Fundamentos en Ciencias de la Computación

Con acarreo ("me llevo...")

  • 1 + 1 = 10
  • 1 + 1 + 1 = 11

En ambos casos hay acarreo.

Fundamentos en Ciencias de la Computación

Ejemplo de suma

  1011
+ 0110
------
 10001

Fundamentos en Ciencias de la Computación

Otras operaciones

  • la resta sigue la misma lógica posicional
  • la multiplicación usa productos parciales
  • la división puede verse como restas sucesivas

Fundamentos en Ciencias de la Computación

Existe una limitación importante:

Las computadoras usan una cantidad fija de bits.

Ejemplo:

8 bits = 1 byte

Fundamentos en Ciencias de la Computación

Overflow

¿Qué pasa si el resultado es demasiado grande para la cantidad de bits disponible?

Ocurre un desbordamiento:

overflow

Fundamentos en Ciencias de la Computación

Así es un overflow:

Si solo tenemos 4 bits:

1111 + 1 -> 0000

Hay overflow.

Fundamentos en Ciencias de la Computación

Entonces, cuándo hay overflow...

La computadora no "se da cuenta" del error.

Simplemente pierde información que no entra en la cantidad de bits disponible.

Fundamentos en Ciencias de la Computación

Nuevo problema:

¿Cómo representamos números negativos?

En binario no existe un símbolo especial - dentro del dato.

Fundamentos en Ciencias de la Computación

Opción: bit

Signo-magnitud:

  • un bit para el signo
  • el resto para el valor

Problema:

complica las operaciones

Fundamentos en Ciencias de la Computación

Opcion: Complemento a 1

Consiste en invertir todos los bits.

Ejemplo:

0001 -> 1110

Fundamentos en Ciencias de la Computación

Problema del complemento a 1

  • aparecen dos ceros:
    • +0 y -0
    • 0000 y 1111
  • operar sigue siendo incómodo

Fundamentos en Ciencias de la Computación

Fundamentos en Ciencias de la Computación

Opcion: Complemento a 2

Proceso:

  1. invertir los bits
  2. sumar 1

Fundamentos en Ciencias de la Computación

Ejemplo: Complemento a 2

0001 -> 1110 -> 1111

Primero se invierten los bits.

Luego se suma 1.

Fundamentos en Ciencias de la Computación

Ventaja: Complemento a 2 (suma)

El complemento a 2 permite:

usar la misma suma para positivos y negativos

Fundamentos en Ciencias de la Computación

Resta en computadoras

Para restar:

se suma el complemento a 2

Fundamentos en Ciencias de la Computación

la computadora no resta directamente; transforma la resta en una suma del negativo, y ese negativo se construye con complemento a 2

Resta en computadoras

Fundamentos en Ciencias de la Computación

la computadora no resta directamente; transforma la resta en una suma del negativo, y ese negativo se construye con complemento a 2

7 - 3   ->   7 + (-3) 

7 = 0111

3 = 0011

 

-3 = 1100 + 1 = 1101

 

0111 + 1101 = 10100 -> 0100 = 4

Recapitulando...

  • los números se representan con bases
  • el binario es la base de la representación digital
  • hexadecimal y ASCII ayudan a interpretar esa información
  • las operaciones binarias permiten calcular
  • la cantidad de bits impone límites

Fundamentos en Ciencias de la Computación

... y recordar que:

Una computadora no "ve" números, letras o imágenes como nosotros.

Lo que maneja son:

bits organizados, interpretados y operados según reglas

Fundamentos en Ciencias de la Computación

Unidad 2

By Rodolfo Pilas

Unidad 2

  • 64