Tema 2: Sistemas de representación numérica



Documentos relacionados
Los sistemas de numeración se clasifican en: posicionales y no posicionales.

SISTEMAS NUMÉRICOS (SISTEMAS DE NUMERACIÓN)

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU)

Sistemas de numeración

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: = =8245,97

SISTEMAS DE NUMERACIÓN. Sistema decimal

❷ Aritmética Binaria Entera

UNIDAD 3: ARITMÉTICA DEL COMPUTADOR

Materia: Informática. Nota de Clases Sistemas de Numeración

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Aritmética binaria

Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Sistemas de Numeración Operaciones - Códigos

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

SISTEMAS Y CÓDIGOS DE NUMERACIÓN

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)


DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

SITEMA BINARIO, OCTAL Y HEXADECIMAL: OPERACIONES

UNIDAD Nº 1: 1. SISTEMAS DE NUMERACION. Formalizado este concepto, se dirá que un número X viene representado por una cadena de dígitos:

Informática Bioingeniería

Sistemas de numeración, operaciones y códigos

Naturaleza binaria. Conversión decimal a binario

Clase 02: Representación de datos

Sistema binario. Representación

TEMA 4. Sistema Sexagesimal. Sistema Octal (base 8): sistema de numeración que utiliza los dígitos 0, 1, 2, 3, 4, 5,

El sistema decimal, es aquél en el que se combinan 10 cifras (o dígitos) del 0 al 9 para indicar una cantidad específica.

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

QUÉ ES UN NÚMERO DECIMAL?

Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles José Ignacio Martínez Torre Ángel Serrano Sánchez de León.

EJERCICIOS DEL TEMA 1

Representación de Datos. Una Introducción a los Sistemas Numéricos

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 =

Tema 2. La Información y su representación

Matemáticas para la Computación

TEMA 1 Representación de la información

Anterior Sistemas binarios: Aritmética binaria Siguiente ARITMÉTICA BINARIA. Operaciones elementales con números binarios

EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso El sistema de numeración binario

TEMA 2: Representación de la Información en las computadoras

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA JOSE LEONARDO CHIRINO PUNTO FIJO EDO-FALCON CATEDRA: ARQUITECTURA DEL COMPUTADOR PROFESOR: ING.

Tema I. Sistemas Numéricos y Códigos Binarios

TECNOLOGÍA 4º ESO Realizando la lectura como indica la flecha obtenemos: 20 10) = ) Lectura

8 millares + 2 centenas + 4 decenas + 5 unidades + 9 décimos + 7 céntimos

TEMA II REPASO. SISTEMAS DE NUMERACIÓN USUALES EN INFORMÁTICA.

UD 1. Representación de la información

ANEXO 2: REPRESENTACION DE LA INFORMACION EN LOS COMPUTADORES

Sistemas de numeración y aritmética binaria

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo

by Tim Tran:

Unidad Didáctica. Códigos Binarios

Materia Introducción a la Informática

SISTEMAS DE NUMERACIÓN (11001, 011) = = (32,12)

Los números racionales

PARTE 3 SISTEMAS DE NUMERACION

Ecuaciones de primer grado con dos incógnitas

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

ARQUITECTURA DE LAS COMPUTADORAS PRACTICA

1. Informática e información. 2. Sistemas de numeración. 3. Sistema binario, operaciones aritméticas en binario, 4. Sistemas octal y hexadecimal. 5.

Tema 1. Representación de la información MME

Divisibilidad y números primos

Computación I Representación Interna Curso 2011

Por ejemplo convertir el número 131 en binario se realiza lo siguiente: Ahora para convertir de un binario a decimal se hace lo siguiente:

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

Representación de la Información

EIE SISTEMAS DIGITALES Tema 2: Sistemas de Numeración, Operaciones y Códigos

Sistemas de Numeración

Fundamentos de Programación. Sabino Miranda-Jiménez

Lección 4: Suma y resta de números racionales

Realizado por Pablo Yela

Lección 1. Representación de números

CURSO TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1

INDICE PALOMA GUADALUPE MENDOZA VILLEGAS CYNTHIA PATRICIA GUERRERO SAUCEDO 1

Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información

Electrónica Digital I (ED21) Sesión: 3 Aritmética Binaria. Ing. José C. Benítez P.

En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales

Capítulo 2 REPRESENTACIÓN DE LOS DATOS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL

FORMATO BINARIO DE NÚMEROS NEGATIVOS

Instituto Tecnológico de Celaya

SISTEMAS DE NUMERACIÓN.

Notas de Teórico. Sistemas de Numeración

Sistemas Numéricos. M. en C. Erika Vilches

SISTEMAS DE NUMERACIÓN

Capítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8

NÚMEROS NATURALES Y NÚMEROS ENTEROS

1. SISTEMAS DIGITALES

Cualquier número de cualquier base se puede representar mediante la siguiente ecuación polinómica:

parte del tiempo de procesamiento en realizar este tipo de Es importante por que una computadora consume gran

Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal

Sistemas de Numeración

Universidad Tecnológica Nacional Facultad Regional Tucumán Ingeniería Electrónica Asignatura: Informática I 1R2 Trabajo Práctico N 1 - Año 2014

Aritmética finita y análisis de error

Aritmética Binaria. Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid

Informática 1 Sistemas numéricos: decimal, binario, octal y hexadecimal FCFA Febrero 2012

Primeros conmutadores: diodos de cristal y de tubos de vacío (1906). Transistor (TRT): más pequeño y fiable, de material semiconductor (1950).

Aritmética del computador. Departamento de Arquitectura de Computadores

Polinomios y fracciones algebraicas

Transcripción:

2.1 Sistemas de Numeración Definiciones previas Comenzaremos por definir unos conceptos fundamentales. Existen 2 tipos de computadoras: Analógicas: actúan bajo el control de variables continuas, es decir, que toman infinitos valores. Digitales: actúan bajo el control de variables discretas, es decir, que pueden tomar un número finito de valores en el tiempo. Las computadoras con las que vamos a tratar son digitales. Sistema de numeración: es un conjunto de reglas, signos y convenios que nos permiten expresar, verbal y gráficamente, las cantidades de las magnitudes o valores numéricos. Base de un sistema de numeración: es el número de signos distintos que se emplean en el sistema. Alfabeto de un sistema de numeración: son todos y cada uno de los signos que se emplean en el sistema. A partir de ellos se expresarán todas las cantidades. Por ejemplo, el sistema de numeración decimal utiliza diez dígitos: Base: 10 Alfabeto: 0,1,2,3,4,5,6,7,8,9. 1

Clasificación Los sistemas de numeración se clasifican en: posicionales y no posicionales. 1. Sistemas posicionales En ellos, cada cifra de un valor numérico contribuye al valor final dependiendo de su valor y de la posición que ocupa dentro de él (valor relativo). En estos sistemas tenemos tantos símbolos como la base del sistema. Los números mayores que la base se representan por medio de varias cifras. El valor final será la suma de una serie de potencias de la base del sistema (B): N = A n B n + A n-1 B n-1 +... + A 1 B 1 + A 0 B 0 Donde A i son las distintas cifras del valor numérico e i su posición. 2. Sistemas no posicionales Al contrario que en el caso anterior, en este caso la contribución de cada cifra no depende del lugar que ocupa. Un ejemplo de este sistema serían los números romanos: La combinación XXI equivale a 21. Podemos ver cómo la cifra X aparece dos veces y siempre tiene el mismo valor: 10 unidades, independientemente de su posición. El inconveniente que tienen estos sistemas es que para escribir valores numéricos grandes son necesarios muchos símbolos, y además resulta difícil efectuar operaciones aritméticas con ellos, cosa que no sucede con los posicionales. Los sistemas de numeración que veremos a continuación son todos sistemas posicionales. A partir de ahora, para evitar confusiones, cuando expresemos un valor numérico pondremos un subíndice al final indicando la base en la que se expresa dicho valor, salvo que por el contexto quede suficientemente claro: 225 10 = Base decimal 11011 2 = Base binaria 2

Sistema decimal Es el sistema que utilizamos habitualmente las personas. Base: 10 Alfabeto: 0,1,2,3,4,5,6,7,8,9 Cumple la fórmula anterior (B=10): N = A n 10 n + An-1 10 n-1 +... + A 1 10 1 + A 0 10 0 Ejemplo: 225 10 = 2 10 2 + 2 10 1 + 5 10 0 = 200 + 20 + 5 3

Sistema binario Es el sistema utilizado por los computadores. Base: 2 Alfabeto: 0,1 Este sistema, presenta el inconveniente de que necesita muchas cifras para la representación de un número grande, y es muy engorroso para un humano. Sin embargo, el sistema binario es el más adecuado a las máquinas electrónicas por varias razones: 1. La mayor parte de las computadoras existentes representan la información y la procesan mediante elementos y circuitos electrónicos de dos estados (relés, núcleos de ferrita, etc.). 2. Por la seguridad y la rapidez de respuesta de los elementos físicos de dos estados diferenciados (ON / OFF). 3. Las operaciones aritméticas son sencillas. Los quince primeros números binarios se escriben: Decimal Binario 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 11 1011 12 1100 13 1101 14 1110 15 1111 4

Conversión binario-decimal La forma más sencilla de realizar esta conversión es desarrollando la fórmula que vimos para los sistemas posicionales (suma de potencias de la base). Ejemplo 1: N = A n B n + A n-1 B n-1 +... + A 1 B 1 + A 0 B 0 Donde A i son las distintas cifras del valor numérico e i su posición. B = 2 Dado el número binario: 1011 2, encontrar el equivalente decimal. Si desarrollamos el número dado como potencias de 2 tendremos: 1011 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 1 8 + 0 4 + 1 2 + 1 1 = = 8 + 2 + 1 = 11 10 Ejemplo 2: Ahora vamos a realizar lo mismo pero con cifras decimales. Dado el número binario: 1011,011 2, encontrar el equivalente decimal. 1011,011 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 + 0 2-1 + 1 2-2 + 1 2-3 = = 1 8 + 0 4 + 1 2 + 1 1 + 0 1/2 + 1 ¼ + 1 1/8 = 11,375 Conversión decimal-binario Una forma de realizar esta conversión sería separar la parte entera de la parte fraccionaria, y operar del siguiente modo: 1. La parte entera se divide tantas veces como sea posible por la base (2), hasta que el cociente sea 0 o 1. El último cociente y los restos obtenidos, al escribirlos en orden inverso a su obtención, nos dan el resultado. 2. La parte fraccionaria se multiplica por la base (2); la parte entera obtenida (0..1) representa la cifra binaria. Se procede de forma iterativa con la parte fraccionaria que nos vaya quedando, hasta que sea 0 o veamos que el resultado será periódico o infinitas cifras decimales. El resultado será la unión de las partes enteras, en el orden que las hemos obtenido. 5

Ejemplo 1: Vamos a obtener el equivalente binario del valor decimal: 11 10 En este caso tan sólo tenemos parte entera. 11 2 1 5 2 1 2 2 Según esto, el equivalente será: 0 1 11 10 = 1011 2 Puede comprobarse el resultado con los ejemplos anteriores. Ejemplo 2: Expresar el número decimal 109,625 10 en el sistema binario. Parte entera 109 2 Obtenemos el valor 1101101 2 1 54 2 0 27 2 1 13 2 1 6 2 0 3 2 1 1 Parte fraccionaria 0,625 * 2 = 1,250 Obtenemos el valor: 101 2 0,250 * 2 = 0,5 0,5 * 2 = 1,0 El resultado final es la unión de ambos valores: 109,625 10 = 1101101,101 2 6

Sistema Octal Base: 8 Alfabeto: 0,1,2,3,4,5,6,7 El interés de este sistema proviene de que su conversión al binario resulta sencilla, por ser 8 = 2 3. Se usa bastante con listados de programas y volcados de memoria (dump), pues permite impresiones mucho más compactas que con el sistema binario, ya que cada dígito octal equivale a 3 dígitos binarios. Los ocho primeros números octales se escriben: Conversión octal-binaria Octal Decimal Binario 0 0 000 1 1 001 2 2 010 3 3 011 4 4 100 5 5 101 6 6 110 7 7 111 Para convertir un número expresado en base 8 a base 2, simplemente sustituimos cada una de las cifras que lo forman por sus tres cifras binarias equivalentes. Ejemplo: 375,42 10 = 011 111 101,100 010 Conversión binaria-octal Se realiza a la inversa, comenzando desde la coma decimal hacia la izquierda para la parte entera, rellenando con 0 s a la izquierda si fuera necesario; y desde la coma decimal hacia la derecha para la parte fraccionaria, rellenando con 0 s a la derecha si fuera necesario. Ejemplo 1: Ejemplo 2: 11111101,100010 2 = 011 111 101,100 010 2 = 375,42 10 11010,1011 2 = 011 010,101 100 2 = 32,54 10 7

Conversión octal-decimal Se realiza del mismo modo que de binario a decimal, teniendo en cuenta que la base ahora es B=8. Ejemplo: 345,5 8 = 3 8 2 + 4 8 1 + 5 8 0 + 5 8-1 = 192 + 32 + 5 + 0,625 = 229,625 10 Conversión decimal-octal Se realiza del mismo modo que de decimal a binario, dividiendo la parte entera de forma sucesiva por la base B=8, y multiplicando la parte fraccionaria por la base. Ejemplo: Expresar el número decimal 1036,35 10 en octal. Parte entera 1036 8 El resultado será: 1036 10 = 2014 8 23 129 8 76 49 16 8 4 1 0 2 Parte fraccionaria 0,35 * 8 = 2,8 Obtenemos el valor: 26314... 8 0,8 * 8 = 6,4 0,4 * 8 = 3,2 0,2 * 8 = 1,6 0,6 * 8 = 4,8 El resultado final es la unión de ambos valores: 1036,35 10 = 2014,26314... 8 8

Sistema Hexadecimal Base: 16 Alfabeto: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F El interés de este sistema proviene de que su conversión al binario resulta sencilla, por ser 16 = 2 4. Esto significa que cada grupo de 4 bits (dígitos en binario), equivale a uno solo en hexadecimal, con lo cual, obtendremos representaciones mucho más compactas. Conversión hexadecimal-binario Basta con sustituir cada símbolo hexadecimal por su equivalente en binario, según se indica en la tabla siguiente: Ejemplo: Hexadecimal Decimal Binario 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111 Hállese el equivalente binario del número 9A7E 16 9A7E 16 = 1001 1010 0110 1110 2 Conversión binario-hexadecimal La conversión de un número binario a hexadecimal se realiza a la inversa: se forman grupos de cuatro cifras binarias a partir de la coma decimal, hacia la izquierda y hacia la derecha, y se sustituye cada grupo por su equivalente hexadecimal. Si el grupo final de la izquierda queda incompleto, se rellena con 0 s por la izquierda. Del mismo modo, si el grupo final de la derecha queda incompleto, se rellena con 0 s por la derecha. 9

Ejemplo: Calcúlese el equivalente hexadecimal del número binario siguiente: 1101010111100011100000001,110001 2 Agrupamos y rellenamos con 0 s: 0001 1010 1011 1100 0111 0000 0001,1100 0100 2 Sustituimos cada grupo de 4 por su equivalente hexadecimal: 1 A B C 7 0 1, C 4 Resultado: 1ABC701,C4 16 Conversión hexadecimal-decimal La conversión se realiza siguiendo el mismo procedimiento que en las conversiones binario-decimal, pero considerando la base B=16. En este caso, además, deberemos sustituir los valores A..F por su equivalencia en el sistema decimal. Ejemplo: Hállese el equivalente decimal del valor hexadecimal 39,B8 16. 39,B8 16 = 3 16 1 + 9 16 0 + B 16-1 + 8 16-2 = = 3 16 1 + 9 16 0 + 11 16-1 + 8 16-2 = = 48 + 9 + 0.6875 + 0.03125 = = 57,71875 Conversión decimal-hexadecimal Procederemos del mismo modo que en la conversión decimal-binario, considerando B=16. Dividiremos la parte entera sucesivamente por la base, y la parte fraccionaria la multiplicaremos por la base. Ejemplo: Hállese el equivalente hexadecimal del número 4573,79 10. Parte entera 4573 _16 4573 10 = 11DD 16 13 285 _16 13 17 _16 1 1 10

Parte fraccionaria 0,79 * 16 = 12,64 Valor: 12 10 3 13 7... = CA3D7... 16 0,64 * 16 = 10,24 0,24 * 16 = 3,84 0,84 * 16 = 13,44 0,44 * 16 = 7,04... Valor final: 4573,CA3D7... 16 Conversiones de cualquier base Conversión de una base cualquiera a base decimal (b => 10) Para este tipo de conversión utilizaremos la fórmula de la suma de productos de potencias de la base vista anteriormente. Ejemplo: Hallar el equivalente decimal del valor 1312,3 4 1312,3 4 = 1 4 3 + 3 4 2 + 1 4 1 + 2 4 0 + 3 4-1 = = 64 + 48 + 4 + 2 + 0.75 = 118,75 10 Conversión de base decimal a otra base cualquiera (10 => b) Se realiza como hemos visto hasta ahora, es decir: Parte entera: dividiendo el número decimal por la base a la que queremos convertir, de forma sucesiva hasta que el cociente sea menor que la base. El último cociente y los restos que resultan de todas las divisiones en orden inverso a su obtención es el resultado final. Parte fraccionaria: multiplicando sucesivamente por la base, cogiendo las partes enteras como parte del resultado. 11

Ejemplo: Expresar el número decimal 545,67 10 en base 5 Parte entera 545 5 545 10 = 4140 5 0 109 5 4 21 _ 5 1 4 Parte fraccionaria 0,67 * 5 = 3,35 Valor: 3 1 3 3... = 3133... 5 0,35 * 5 = 1,75 0,75 * 5 = 3,75 0,75 * 5 = 3,75... Valor final: 4140,3133... 5 Conversión de una base b 1 a otra b 2 Para realizar este tipo de conversiones desde una base que no sea la decimal a otra que tampoco lo sea seguimos dos pasos: Convertir el valor en base b1 a base decimal Convertir de base decimal a b2 Estas conversiones las haremos según los apartados anteriores. Valor en b1 Valor intermedio en base 10 Valor final en b2 Ejemplo: Expresar el valor 1318 9 en base 7. Convertimos a decimal (base 10): 1318 9 = 1 9 3 + 3 9 2 + 1 9 1 + 8 9 0 = 729 + 243 + 9 + 8 = 989 10 Convertimos a base 7: 989 7 989 10 = 2612 7 2 141 7 1 20 7 6 2 12

Conversiones de base con números no enteros: Cuando trabajamos con números no enteros tenemos parte entera y parte fraccionaria. Hemos visto que para convertir de decimal a cualquier otra base tenemos que realizar dos procesos cuando tenemos cifras decimales; la parte entera y la parte fraccionaria. La parte entera es sencilla, como hemos visto hasta ahora. Para la parte fraccionaria debemos tener en cuenta las siguientes consideraciones. Dependiendo del tipo de número que tengamos podemos tener las siguientes posibilidades. 1 Racionales 1.1 Cifras decimales no periódicas Procedemos como hemos visto hasta ahora, es decir, multiplicando sucesivamente por la base y nos quedamos con la parte entera. 0,615 x 2 = 1,250 0,250 x 2 = 0,500 0,500 x 2 = 1 Por tanto: 0,625 10 = 0,101 2 NOTA: el hecho de que un número N tenga un número finito de decimales en una base no implica que en otra base sea así (p.e. 0,825 10 ) 1.2 Cifras decimales periódicas Tenemos que expresarlo en forma de fracción equivalente irreducible, después la expresaremos en binario (base 2) (numerador y denominador) y haremos la división en binario. _ 0,666... = 0,6 (periódico) Fracción irreducible: _ x = 0,6 (Lo llamamos x) _ 1 x = 0,6 (La parte periódica detrás de la coma: ya está) _ 10 x = 6,6 (Desplazando el número de cifras periódicas) 10 x - 1 x = 6,6-0,6 = 6 (Restando ambas expresiones) 13

x = 6 / 9 = 2 / 3 (Fracción equivalente e irreducible) _ Se puede comprobar que: 2 / 3 = 0,6 Expresarlo en binario: 10 2 / 11 2 Finalmente, hacer la división binaria: 10 0 11 10 2 / 11 2 = 0,100 100... - 11 0, 100100... ------ 0 0100 Otros ejemplos: x = 0,07954 (Lo llamamos x) 1000 x = 79,54 (La parte periódica detrás de la coma) 1000 00 x = 7954,54 (Desplazando el número de cifras periódicas) 1000 00 x - 1000 x = 7954,54-79,54 = 7875 (Restando ambas expresiones) x = 7875 / 99000 = 7 / 88 (Fracción equivalente e irreducible) Se puede comprobar que: 7 / 88 = 0,07954 x = 0,563 (Lo llamamos x) 10 x = 5,63 (La parte periódica detrás de la coma) 1000 x = 563 63 (Restando ambas expresiones) 1000 x - 10 x = 563,63-5,63 = 558 (Restando ambas expresiones) x = 558 / 990 = 279 / 495 (Fracción equivalente e irreducible) Se puede comprobar que: 279 / 495 = 0,563 En la práctica lo que se hace para obtener la fracción equivalente es tomar el número como un entero, le restamos la parte no periódica y se divide por tantos 9 s como el número de cifras periódicas y tantos 0 s como las no periódicas. 14

2 Irracionales Tienen infinitas cifras decimales que no se repiten. Los tratamos como racionales, pero tenemos que considerar que trabajamos con errores, es decir, los resultados serán aproximados. El proceso es similar a los racionales no periódicos, solo que en este caso, necesitamos conocer el número de cifras decimales con las que nos vamos a quedar. Supongamos el número PI = 3,141592653... (infinitas cifras decimales) Vamos a considerar que el número PI = 3,1416 (redondeado a 4 cifras) Al hacer esto estamos cometiendo un error E1 10-4 Al convertirlo al sistema binario cometemos otro error E2, tal que: E2 E1 Para determinar el número de cifras fraccionarias binarias necesarias para que se cumpla la desigualdad anterior hacemos lo siguiente: Sabemos que: E1 10-4 Del mismo modo: E2 2 -n, donde n = número de cifras fraccionarias. Debe complirse: E2 E1 Sustituyendo: 2 -n 10-4. Tomamos logaritmos: Log 10 2 -n Log10-4 -n Log 10 2-4 Log 10 10 -n Log 10 2-4 -n (-4 / Log 10 2) n > (4 / Log 10 2) n > 13,28 Por tanto, necesitaremos al menos 14 cifras decimales en la parte fraccionaria para no cometer más error al convertir a binario. 0,1416 x 2 = 0,2832 0,1248 x 2 = 0,2496 0,2832 x 2 = 0,5664 0,2496 x 2 = 0,4992 0,5664 x 2 = 1,1328 0,4992 x 2 = 0,9984 0,1328 x 2 = 0,2656 0,9984 x 2 = 1,9968 0,2656 x 2 = 0,5312 0,9968 x 2 = 1,9936 0,5312 x 2 = 1,0624 0,9936 x 2 = 1,9872 0,0624 x 2 = 0,1248 0,9872 x 2 = 1,9744 Por tanto, el resultado será: 3,1416 10 = 11,00100100001111 2 (con un error E 10-4 ). 15

2.2 Aritmética binaria La aritmética binaria es básica en las computadoras digitales Las operaciones aritméticas que vamos a ver son las mismas que para el sistema decimal: suma resta multiplicación división, para la base binaria Suma La tabla de adición siguiente nos muestra las 4 reglas básicas para sumar dígitos binarios: Valor 1 Valor 2 Suma Acarreo 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 En el último caso tenemos un acarreo, que se sumará en la cifra siguiente. Entonces tendremos que sumar 3 bits, los dos de las dos cifras binarias que estamos sumando y el bit de acarreo. Si ambos son 1, al sumarle el acarreo, obtendremos 1 y volveremos a tener un acarreo. Ejemplo: Sumar los valores binarios 110011101 y 10110111. 1 1 0 0 1 1 1 0 1 + 1 0 1 1 0 1 1 1 --------------------------- 1 0 0 1 0 1 0 1 0 0 16

Resta La sustracción binaria utiliza las siguientes reglas: Valor 1 Valor 2 Resta Acarreo 0 0 0 0 0 1 1-1 1 0 1 0 1 1 0 0 En el segundo caso, lo que haremos será prestar un 1 de la siguiente columna, o la primera que no sea 0, sustituyendo todos los 0 por 1 desde esa columna hasta la columna actual (todo esto es en el minuendo). Ejemplo: Efectuar la diferencia 11101 1011. modificaciones en el minuendo: 0 minuendo: 1 1 1 0 1 29 substraendo: - 1 0 1 1-11 ------------------ ------- 1 0 0 1 0 18 Ejemplo: Efectuar la diferencia 11000 10011. modificaciones en el minuendo: 0 1 1 minuendo: 1 1 0 0 0 24 substraendo: - 1 0 0 1 1-19 ------------------- ---------- 0 0 1 0 1 5 En el caso de que tengamos cifras decimales, lo primero que debemos hacer es alinear verticalmente las comas binarias antes de efectuar la resta y rellenar con ceros a la derecha de los números para ajustar las partes fraccionarias a un mismo número de dígitos. Ejemplo: Efectuar la diferencia 1101,101 11,10111. modificaciones en el minuendo: 0 1 0 0 1 0 1 minuendo: 1 1 0 1, 1 0 1 0 0 substraendo: - 1 1, 1 0 1 1 1 ----------------------------- 1 0 0 1, 1 1 1 0 1 17

También podría hacerse como hacemos en el sistema decimal, sumando los acarreos negativos a la siguiente columna del sustraendo, es decir, en vez de realizar modificaciones en el minuendo, realizaremos modificaciones en el sustraendo. Cuando sumemos un acarreo, si en la siguiente columna tengamos un 1, se produce un nuevo acarreo y seguimos sumando dicho acarreo a la siguiente columna, hasta llegar a un bit 0. minuendo: 1 1 0 1, 1 0 1 0 0 substraendo: - 1 1, 1 0 1 1 1 modificaciones en el sustraendo: 1 0 0 0 1 0 0 ----------------------------- 1 0 0 1, 1 1 1 0 1 18

Multiplicación La multiplicación de 2 bits sigue las siguientes 4 reglas: Valor 1 Valor 2 Multiplicación 0 0 0 0 1 0 1 0 0 1 1 1 La multiplicación de números binarios se realiza de la misma forma que con números decimales. Se realizan los productos parciales, desplazando cada producto parcial una posición a la izquierda, y luego se suman dichos productos. Es aun más sencilla que con números decimales, ya que en binario tan sólo tenemos dos dígitos: 0 y 1. Cuando multiplicamos por 0 obtenemos 0, y cuando multiplicamos por 1 obtenemos el mismo número. Ejemplo: Calcular el producto 1100 x 1011. 1 1 0 0 12 x 1 0 1 1 x 11 --------------- -------- 1 1 0 0 132 1 1 0 0 0 0 0 0 + 1 1 0 0 ---------------------- 1 0 0 0 0 1 0 0 En el caso de que tengamos cifras decimales, la multiplicación se realiza exactamente igual, y al final, el número de posiciones decimales en el número resultante del producto es la suma del número de cifras decimales de los números que se están multiplicando. Ejemplo: Calcular el producto binario 11,01 x 101,1. 1 1, 0 1 3,25 x 1 0 1, 1 x 5,5 -------------- ------------- 1 1 0 1 1 6 2 5 1 1 0 1 1 6 2 5 0 0 0 0 ------------- 1 1 0 1 1 7,8 7 5 --------------------- 1 0 0 0 1,1 1 1 19

División El algoritmo utilizado por la división binaria se reduce a sustracciones repetidas del divisor. Las reglas utilizadas son las siguientes: Valor 1 Valor 2 División 0 0 No definido 0 1 0 1 0 Imposible 1 1 1 Ejemplo: Efectuar la división 1 1 1 0 1 1 1 / 1 0 0 1 0 1 1 1 0 1 1 1 _1 0 0 1_ 1 1 9 9-1 0 0 1 1 1 0 1-9 1 3 ------------ ------ 0 1 0 1 1 2 9-1 0 0 1-2 7 ------------ ------- 0 0 1 0 1 1 2-1 0 0 1 ------------ 0 0 1 0 En el caso de fracciones binarias se trata de la misma forma que la división de fracciones decimales, es decir, se convierte el divisor en un entero desplazando la coma binaria a la derecha; el dividendo se desplaza el mismo número de posiciones. Ejemplo: Realizar la división 111,00001 / 1,01 1 1 1 0 0, 0 0 1 1 0 1 7,03125 / 1,250 = 5,625-1 0 1 1 0 1 1 0 1 --------- 0 1 1 0 1 0 0 0 0 1 0 0 0-1 0 1-1 0 1 ----------- -------------- 0 0 1 1 0 0 1 1 1 1 0-1 0 1-1 0 1 ---------- ------------ 0 0 1 0 1 0 0 1-1 0 1 ------------ 0 0 0 20

El resultado final será el cociente pero cogiendo tantas cifras decimales como tenga el dividendo, después de haber desplazado la coma. En este caso son 3. Por tanto, el resultado es: 101,101. NOTA: Los computadores utilizan una forma de representación de los números negativos llamada complemento, que nos facilita la realización de las operaciones de resta, ya que utiliza circuitos sumadores. La veremos en el siguiente apartado. 21

2.3 Representación de la información en las computadoras En las computadoras, la información se procesa por conmutación y almacenamiento de señales eléctricas. Se utiliza el sistema binario por la facilidad y estabilidad que tiene representar dos estados lógicos diferenciados. Dependiendo de las familias lógicas utilizadas, se utiliza un valor de tensión para representar el 0 lógico y otro valor para el 1 lógico. No se trata de un valor exacto, sino de un margen. Familia TTL: 0 = 0,2 v / 1 = 3,3 v Familia CMOS: 0 = 0..3 v / 1 = 7..10 v Familia ECL (lóg.neg.): 0 = -0,75 v / 1 = -1,5 v Los dígitos binarios se suelen transmitir y recibir como una sucesión de impulsos. Existen dos técnicas para distinguir entre los dos estados lógicos: Con retorno a cero (RZ): un impulso positivo representa un 1 y un impulso negativo representa un 0. 1 1 1 0 Sin retorno a cero (NRZ): el 0 se representa por ausencia de impulso, y el 1 se representa por un impulso. Lógicamente, los circuitos receptores deben mantenerse sincronizados con la señal. 1 1 0 1 22

Números con signo Los sistemas digitales deben ser capaces de manejar números positivos y negativos. Un número binario con signo queda determinado por su magnitud (valor) y su signo (positivo/negativo). El símbolo - del sistema decimal no se puede representar en binario. Debido a esto, existen 3 formatos de representación de números con signo: Signo-magnitud: Complemento a la base Complemento a la base menos uno En todos ellos, el signo del número viene representado por un bit adicional, el Bit de signo, que se coloca en el extremo izquierdo del número binario con signo. Se utiliza el siguiente convenio: Método signo-magnitud 0 : signo positivo 1 : signo negativo Se trata de reservar el bit del extremo izquierdo (MSB) como bit de signo; los restantes representan el valor numérico del número en formato binario (magnitud). n bits Bs Magnitud 1 bit (n-1) bits Por ejemplo, para n=8: +11 10 = 0 000 1011-11 10 = 1 000 1011 En un registro de n bits, los números que pueden representarse serán 0.. 2 n -1. En total 2 n números. Al utilizar el primer bit como bit de signo, no se reduce la cantidad de números que se pueden representar (2 n ), pero si el valor mínimo y máximo, pues en vez de tener n bits para la magnitud ahora tendremos n-1 bits. Por tanto, el rango de valores que podremos representar en signo-magnitud es: -(2 n-1-1).. 0.. +(2 n-1-1) Esta representación presenta ciertos inconvenientes: Pues para cualquier operación aritmética debemos comprobar primero el signo, para después sumar o restar en función del mismo. El diseño de circuitos lógicos que realicen operaciones aritméticas con números binarios en signo-magnitud no es fácil. Tenemos dos representaciones para el número 0: +0 10 = 0 000 0000-0 10 = 1 000 0000 23

Método del complemento La utilización de números complementados es un concepto especialmente útil para simplificar la resta, pues permite realizarla utilizando circuitos sumadores. Los números positivos en este sistema se representan de la misma forma que los números positivos en formato signo-magnitud, simplemente se añade un 0 como bit de signo a la magnitud del número. El número 0 se identifica como positivo y tiene por tanto un bit de signo 0 y una magnitud de todos ceros. Los números negativos son el complemento del correspondiente número positivo. Existen dos variantes en la forma de complemento: el complemento a la base y el complemento a la base menos uno. NOTA: Cuando hay decimales, se quita la coma, se hace el complemento correspondiente y de nuevo se coloca la coma. Complemento a la base El complemento a la base de un número a de n cifras es el valor: C b = b n a con b = base del sistema n = número de dígitos incluido el signo a = valor absoluto del número Para el sistema binario recibe el nombre de complemento a 2 o complemento verdadero: b=2 => C 2 = 2 n a Complemento a la base menos 1 El complemento a la base menos 1 de un número a es el valor: C b-1 = b n 1 a b = base del sistema n = número de dígitos incluido el signo a = valor absoluto del número Para el sistema binario recibe el nombre de complemento a 1 o complemento restringido: b=2 => C 1 = 2 n 1 a 24

Ejemplo: considerando la base decimal (b=10), obtener los complementos a la base (C 10 ) y a la base menos uno (C 9 ): a = 23 10 Tenemos 2 dígitos (n = 2) C10: -23 10 = 10 2 a = 100 23 = 77 C10 C9 : -23 10 = 10 2 1 a = 100 1 23 = 76 C9 a = 1258 10 Tenemos 4 dígitos (n = 4) C10: -1258 10 = 10 4 a = 10000 1258 = 8742 C10 C9 : -1258 10 = 10 4 1 a = 10000 1 1258 = 8741 C9 Ejemplo: considerando la base binaria (b=2) y 8 dígitos (n=8), obtener el correspondiente C 1 y C 2 de los siguientes valores: a = 10 10 = 0000 1010 2 C2: -10 10 = 2 8 a = 1 0000 0000 0000 1010 = 1111 0110 C2 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0-0 0 0 0 1 0 1 0 -------------------------- 1 1 1 1 0 1 1 0 C1: -10 10 = 2 8 1 a = 1 0000 0000 1 0000 1010 = = 1111 1111 0000 1010 = = 1111 0101 C1 1 1 1 1 1 1 1 1-0 0 0 0 1 0 1 0 ----------------------- 1 1 1 1 0 1 0 1 En la práctica, y SOLO para el sistema binario (b=2): El complemento a 1 se obtiene directamente sin más que cambiar en el número todos los 0 s por 1 s y viceversa. El complemento a 2 se obtiene sumando 1 al complemento a 1. Aplicando esta regla en el ejemplo anterior obtenemos los mismos resultados: a = 10 10 = 0000 1010 2 C1 = 1111 0101 C2 = 1111 0101 + 1 = 1111 0110 Podemos comprobar que los números negativos siempre tienen el bit de signo (MSB) a 1, y los positivos a 0. 25

Operaciones aritméticas de números con signo Suma Cuando se suman dos números binarios A y B (A+B) pueden producirse cuatro casos: A y B son positivos A+B 0 A y B son negativos A+B < 0 A es positivo y B negativo, con A > B A+B 0 A es positivo y B negativo, con B > A A+B < 0 En cualquier caso, el procedimiento de la suma es muy sencillo: sumar los dos números y descartar el bit de acarreo final (si lo hay). Ejemplos: Consideremos números con signo de 8 bits (n=8). A y B son positivos (A=7, B=4) 7 10 = 0000 0111 4 10 = 0000 0100 0 0 0 0 0 1 1 1 7 + 0 0 0 0 0 1 0 0 + 4 ----------------------- ------ 0 0 0 0 1 0 1 1 11 A y B son negativos (A=-5, B=-9) 5 10 = 0000 0101 C2 = 1111 1010 + 1 = 1111 1011 9 10 = 0000 1001 C2 = 1111 0110 + 1 = 1111 0111 1 1 1 1 1 0 1 1-5 + 1 1 1 1 0 1 1 1 + -9 ------------------------ ------- 1 1 1 1 1 0 0 1 0-14 En este caso tenemos acarreo, que descartamos. Como la suma es negativa, el resultado está en C2. 26

Para comprobar el resultado: C2 = b n a => a = b n C2. a = 2 8 C2 = 1 0000 0000 1111 0010 Mod. minuendo: 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0-1 1 1 1 0 0 1 0 ------------------------ 0 0 0 0 1 1 1 0 ==> a = 14 ==> a = -14 A es positivo y B negativo, con A > B (A=15, B=-6) 15 10 = 0000 1111 6 10 = 0000 0110 C2 = 1111 1001 + 1 = 1111 1010 0 0 0 0 1 1 1 1 15 + 1 1 1 1 1 0 1 0 + -6 ----------------------- ------- 1 0 0 0 0 1 0 0 1 9 Como siempre, el bit de acarreo se desprecia. A es positivo y B negativo, con B > A (A=16, B=-24) 16 10 = 0001 0000 24 10 = 0001 1000 C2 = 1110 0111 + 1 = 1110 1000 0 0 0 1 0 0 0 0 16 + 1 1 1 0 1 0 0 0 + -24 ----------------------- -------- 1 1 1 1 1 0 0 0-8 Cuando se suman dos números y el número de bits requerido para representar la suma excede al número de bits de los dos números, se produce un desbordamiento (overflow), que se indica mediante un bit de signo incorrecto (p.e. negativo cuando A y B son positivos). 27

Resta El mecanismo es cambiar el signo al sustraendo y sumar al minuendo: a b = a + (-b) La forma de cambiar el signo al sustraendo es mediante la complementación (C1 ó C2). Complemento a 1 (C1) Utilizando la forma de C1 se puede convertir la operación de resta de dos números binarios en una operación de suma. La forma de operar consiste en calcular el C1 del sustraendo y sumarlo al minuendo. Tenemos dos posibilidades Si se produce acarreo, éste se suma al bit menos significativo de la suma (acarreo circular), para corregir el error que se produce. Si no hay acarreo: el resultado es negativo y la solución se obtiene complementando a 1 el resultado de la suma. Ejemplo: Calcular la diferencia 11001 10110, utilizando C1. Resta ordinaria: Utilizando C1: 0 1 1 1 1 1 0 0 1 1 1 0 0 1-1 0 1 1 0 + 0 1 0 0 1 ----------------- ---------------- 0 0 0 1 1 1 0 0 0 1 0 Acarreo + 1 ---------------- 0 0 0 1 1 El C1 tiene la ventaja de que es sencillo de diseñar un circuito, pues tan solo necesita un inversor para cada bit, que se colocarán en paralelo y serán los bits de entrada de un circuito sumador. Pero el C1 tiene dos inconvenientes: Hay dos formas de expresar el cero (+0 y -0): +0 = 00.. 00-0 = 11.. 11 La resta de dos números no es válida cuando son iguales (el resultado es 0 (cero negativo). Con el C2 se eliminan estos problemas. 28

Complemento a 2 (C2) Del mismo modo que en C1, calculamos el C2 del substraendo y lo sumamos al minuendo. También tenemos dos posibilidades: Si se produce acarreo: éste se desprecia (al contrario que con C1). Si no hay acarreo: el resultado es negativo y la solución se obtiene complementando a 2 el resultado de la suma. Ejemplo: Calcular la diferencia binaria 101 2 11011 2. Resta ordinaria: Utilizando C1: Utilizando C2: 0 1 1 0 1 1 0 0 1 0 1 0 0 1 0 1-0 0 1 0 1 + 0 0 1 0 0 + 0 0 1 0 1 ---------------- ---------------- ---------------- 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 (Cambiamos el (Como no hay (Como no hay signo al final) acarreo => C1) acarreo => C2) Res: -10110 Res: -10110 Res: -10110 Resta ordinaria: como el sustraendo es menor que el minuendo, hacemos la resta poniendo el mayor como sustraendo, pero luego debemos poner el resultado como negativo. Utilizando C1 y C2: como no hay acarreo, hacemos el C1/C2, y por tanto, el resultado es negativo. 29

Si consideramos la base decimal, la forma de operar sería la misma, teniendo que obtener el C9 o C10. Ejemplo: Calcular la diferencia 300 10 298,64 10 = 1,36 10, utilizando C9 y C10: a = 298,64 10 a = 29864 10 (sin coma decimal) Utilizando C10: C10: 10 5 a = 100000 29864 = 70136 300 C10 = 701,36 + 701,36 --------------- 1001,36 Bit de acarreo se desprecia: 1,36 C10: 10 3 a = 1000 a = 1000 298,64 = 701,36 Utilizando C9: 300 + 701,36 --------------- 1001,36 Bit de acarreo se desprecia: 1,36 C9: 10 5 1 a = 100000 1 a = 99999 29864 = 70135 300 C9 = 701,35 + 701,35 --------------- 1001,35 Bit de acarreo se suma al resultado + 1 --------------- 1,36 C9: 10 3 1 a = 1000 1 a = 999 298,64 = 700,36 300 + 700,36 MAL HECHO! --------------- 1000,36 Bit de acarreo se suma al resultado + 1 --------------- 0,37 RECUERDA: Para calcular el complemento (cualquiera), cuando hay decimales, se quita la coma, se hace el complemento correspondiente y de nuevo se coloca la coma. 30

Multiplicación y División En ambos casos realizaremos la operación sin tener en cuenta el signo de los dos números binarios, y posteriormente le aplicaremos el signo, teniendo en cuenta: Si los dos son del mismo signo: resultado positivo. Si los dos son de diferente signo: resultado negativo. 31