I.- Sistemas numéricos en computadores



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

Sistemas de Numeración Operaciones - Códigos

❷ Aritmética Binaria Entera

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

SISTEMAS DE NUMERACIÓN. Sistema decimal

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


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

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

SISTEMAS NUMÉRICOS (SISTEMAS DE NUMERACIÓN)

by Tim Tran:

Sistemas de numeración

Representación de la Información

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

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

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

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

ANEXO 2: REPRESENTACION DE LA INFORMACION EN LOS COMPUTADORES

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

Materia Introducción a la Informática

UD 1. Representación de la información

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

Sistema binario. Representación

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

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

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

SISTEMAS Y CÓDIGOS DE NUMERACIÓN

Clase 02: Representación de datos

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

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

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

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

Tema 1. SISTEMAS DE NUMERACION

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.

Informática Bioingeniería

Matemática de redes Representación binaria de datos Bits y bytes

Computación I Representación Interna Curso 2011

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:

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

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

SITEMA BINARIO, OCTAL Y HEXADECIMAL: OPERACIONES

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

Sistemas de Numeración

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

Sistemas de numeración, operaciones y códigos

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo

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

UNIDADES DE ALMACENAMIENTO DE DATOS

UNIDAD 3: ARITMÉTICA DEL COMPUTADOR

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

Informática. Temas 27/03/2014. Carrera: Bioingeniería Profesora: Lic. S. Vanesa Torres JTP: Ing. Thelma Zanon

Tema 2: Sistemas de representación numérica

ARQUITECTURA DE LAS COMPUTADORAS PRACTICA

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

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

EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO

x

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

Sistemas de numeración y aritmética binaria

TEMA II: REPRESENTACIÓN DE LA INFORMACIÓN

Apuntes de Microcontroladores (Repaso de temas previos)

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

Tema 2 : Códigos Binarios

Matemáticas para la Computación

Estructura de Computadores

1. SISTEMAS DIGITALES

Introducción a la Programación 11 O. Humberto Cervantes Maceda

EJERCICIOS DEL TEMA 1

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

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

Organización del Computador. Prof. Angela Di Serio

TEMA 2 REPRESENTACIÓN BINARIA

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

Representación de números en binario

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

Unidad Didáctica. Códigos Binarios

Sistemas de numeración

Naturaleza binaria. Conversión decimal a binario

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

Aritmética del computador. Departamento de Arquitectura de Computadores

Biblioteca Virtual Ejercicios Resueltos

Aritmética finita y análisis de error

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

1.1 Sistema de numeración binario

13/10/2013. Clase 02: Sistemas de Numeración. Sistemas Digitales y Arquitectura de Computadoras. Ing. Christian Lezama Cuellar.

Informática Básica: Representación de la información

Sistemas numéricos. Aurelio Sanabria Taller de programación

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

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:

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

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

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

ELO311 Estructuras de Computadores Digitales. Números

Introducción a Códigos

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

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

Sebastián García Galán

Representación en Punto Flotante

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL CÓRDOBA EL LENGUAJE DE LOS DATOS EN LA PC Y SU FORMA DE ALMACENAMIENTO

Transcripción:

I.- Sistemas numéricos en computadores 1.1- Datos e información Debido a la naturaleza de las memorias semiconductoras, las computadoras digitales se diseñan para trabajar con el sistema binario. Independientemente de cómo el usuario o el programador interpreta estos bits, la computadora sólo trabaja con ceros y unos. El hombre asigna un significado deseado a un bit o grupos de bits y adapta estos a los requerimientos individuales de un problema en particular. Un grupo de bits se interpretan en función de cómo se agrupan, el significado que se les asigna se denomina sistemas de codificación (siendo los más comunes el octal, binario y hexadecimal). Un valor como el 000101010011b (binario), puede ser codificado como 339D (decimal), 523O (octal) o 153H (hexadecimal). Considerando lo anterior, se puede definir: Datos: Es un conjunto de bits desprovistos de cualquier significado o interpretación. Información: Significado e interpretación que se le incorpora a los datos. Como elemento fundamental de una computadora, la unidad central de procesos (núcleo de un microprocesador) procesa datos, pero el sistema de cómputo opera con información. La sección de entrada (ver fig. 1.1) recibe la información, la libera de la interpretación y presenta los datos a la computadora, la cual los procesa. Una vez terminado el procesamiento, estos datos se convierten en información por la unidad de salida para que sean interpretados por el hombre, tal y como muestra la fig. 1.1. Información Información Unidad de Entrada Datos CPU Datos Unidad de Salida Figura 1.1.- Tratamiento de los datos e información por la computadora. La información se procesa en forma de caracteres, los cuales pueden clasificarse en:

- Caracteres alfabéticos: Conjunto de letras del abecedario inglés (mayúsculas y minúsculas): A, B, C, D, E,..., X, Y, Z; a, b, c, d, e,..., x, y, z. - Caracteres numéricos: Conjunto de números decimales: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. - Caracteres especiales: Son los símbolos no incluidos en los caracteres alfabético y numérico, como son, entre otros: ; :,. Ñ ñ ( ) * / + = & > >[ ] Ç #?! SP (espacio en blanco). - Caracteres de control: Representan las órdenes de control, como carácter de fin de línea, el carácter indicador de sincronización de una transmisión, o que se produzca un pitido, etc. En general se generan e insertan por la propia computadora. - Caracteres gráficos: Son los símbolos o módulos con los que se pueden representar figuras elementales. A las dos primeras clases de caracteres se denominan caracteres alfanúmericos, y en general a las tres últimas clasificaciones se les denomina caracteres de texto. 1.2- Sistemas de numeración El número es, en esencia, la representación de un ente cuantitativo. Un sistema de numeración es una serie de números con sus reglas de combinación y cuyo elemento esencial es la base del mismo, que define las cifras que forman al sistema. Considerando lo anterior, todo número se puede representar mediante una serie de cifras, donde el valor de esta cifra dependerá de ella misma y del lugar que ocupa la cifra dentro del número. Un sistema de numeración se caracteriza por: a) Estar formado por cifras las cuales van desde cero, con incrementos unitarios, hasta el valor de la base menos uno, es decir: donde: 0 a i ( b 1) i 1, b - a i : Cifras básicas del sistema de base b. - b: Base del sistema. - i: Índice de la cifra. (1.1) b) Cualquier número N de un sistema numérico se representa de una única forma: N = a n a n-1 a n-2... a 0. a -1... a -m (1.2) donde: - n: Índice de la más significativa de las cifras básicas.

- m: Índice de la menos significativa de las cifras básicas. - : Punto separador de las cifras enteras y fraccionarias. - a i : Cifras básicas. La ecuación (1.2) es equivalente al número resultante de aplicar: N = a n b n + a n-1 b n-1 + a n-2 b n-2 +... + a 1 b 1 + a 0 b 0 +... + a -1 b -1 +... + a -m b -m (1.3) por lo que puede plantearse que: c) El valor del número no sólo depende de las cifras básicas que forman el número, sino de la posición relativa de las mismas en dicho número. Se puede, por tanto, formar tantos sistemas de numeración como se quiera dependiendo de la selección de la base (2, 3, 4, 8, etc.). No se plantea el 1, pues este comenzará en 0 y se quedará en 0 ( de aplicar (1.1), la base menos uno es cero), a lo que obliga el sistema. 1.2.1.- El sistema decimal El sistema decimal es originario de la India. Creado en el siglo VII, fue desarrollado por un desconocido y hasta nuestros días es el sistema utilizado por más del 80% de la población mundial. Su base es 10, por lo que sus cifras básicas son 0,1,2,3,4,5,6,7,8 y 9. Un número decimal puede representarse de la siguiente forma: 1237.45 donde las cifras son 1,2,3,7,4,5 (de izquierda a derecha), estando determinado el valor de cada cifra por el lugar que ocupa entre las demás, tal y como muestra la tabla 1.1. Potencias de 10 Decimal Valor de la posición Resultado parcial 10 3 1 1000 1000 10 2 2 100 200 10 1 3 10 30 10 0 7 1 7 10-1 4 0.1.4 10-2 5 0.01.05 Resultado final 1237.45 Tabla 1.1- Ejemplo de un número expresado en base decimal Del desarrollo que se muestra en la tabla 1.1 se puede plantear que el valor decimal desglosado en resultados parciales es igual a 1 mil, 2 cientos, 3 dieces, 7 unos, 4 décimas y 5 centésimas (1000 + 200 +30 + 7 +.4 +.05=1237.45).

Cualquier otro sistema se puede definir (como se ha expuesto) sólo a partir de su base. Por consecuencia, un sistema de base 4 estaría conformado por las cifras 0, 1, 2 y 3. Nótese como ninguna cifra puede exceder ni ser igual a su base. Es común identificar la base del número como subíndice de la cantidad o como una letra a la derecha del número. Cuando no se coloca identificador, se supone que el valor está expresado en decimal. Se puede generalizar que cualquier sistema numérico de base b y positivo puede ser representado en un sistema decimal como (forma general de expresar la ecuación (1.3)): q1 i q1 0 1 p 10 i q1... 0. 1... p i p N a b a b a b a b a b (1.4) siendo: b: Base del sistema (entero mayor que uno). a i : Cifras básicas ( cuyo rango de definición es 0 a i b-1).. : Punto que separa las cifras enteras y fraccionarias. p: Orden menor de la parte fraccionaria (número de cifras fraccionarias). q-1: Orden mayor de la parte entera. q: Número de cifras enteras. 1.2.2.- Sistema binario Es el sistema fundamental en que operan las máquinas computadoras. Su base es 2, por lo que sus cifras son 0 y 1. La forma de representar un número en el sistema binario es: 1010.101 2 ó 1010.101b donde el subíndice 2 o la letra b indican que las cifras se representan en el sistema binario de numeración. En este caso, el punto que separa a la parte entera de la fraccionaria se le denomina coma binaria. Para obtener el equivalente decimal del anterior número binario se puede aplicar (1.4), de lo que resulta: 3 3 2 1 0 1 2 3 10 2 i i 32 2 2 12 02 12 22 3 i3 N a a a a a a a a b = 1(8) + 0(4) + 1(2) + 0(1) + 1(0.5) + 0(0.25) + 1(0.125) = 8 + 2 + 0.5 + 0.125 = 10.625 Nótese en el desarrollo anterior como para representar una misma cantidad numérica son necesarias más cifras binarias que cifras decimales (7 cifras binarias por 5 decimales). Lo anterior se debe al tamaño de la base, por lo que puede plantearse: A mayor tamaño de la base, menor cantidad de cifra para representar cierta cantidad numérica.

Se debe destacar que, de manera general, en las computadoras se trabaja con la parte entera, reservando la operación con la parte fraccionaria para el trabajo en punto fijo o en coma flotante. Los números binarios son los más utilizados en las computadoras por la rapidez y seguridad de respuesta de los elementos físicos, por la sencillez de operaciones aritméticas y debido a la naturaleza de los dispositivos electrónicos; lo que compensa la necesidad de utilizar un mayor número de cifras. Es más sencillo construir un elemento que pueda estar normalmente abierto o cerrado (biestable) que otro de 10 estados posibles. 1.2.3.- Sistema Octal La base del sistema octal es 8 y las cifras que lo constituyen son 0,1,2,3,4,5,6 y 7. La amplia utilización de este sistema radica en la búsqueda de un sistema intermedio entre el binario y el decimal. El tratamiento de números binarios es muy engorroso debido a que su pequeña base (la menor posible en un sistema numérico) provoca que para representar un número se necesita gran cantidad de cifras, por lo que se imponía entonces la búsqueda de un sistema numérico que fuera fácilmente transformable al binario y que su base fuera lo más cercana al decimal. De esta forma se podía trabajar con tal sistema con una idea más clara de las entidades que él representa y posteriormente traducirlo al binario con facilidad. De las bases más cercanas a 10 (9,11,8 y 12) sólo el 8 es fácilmente transformable (2 3 = 8). Un número octal puede representarse de la siguiente forma: 45.32 8 ó 45.32o (donde o representa octal, es decir, en base ocho) Para obtener el equivalente decimal de un número octal se puede utilizar (1.4), entonces: N 10 1 a i2 i 1 0 1 2 i 8 4(8 ) 5(8 ) 3(8 ) 2(8 ) 32 5 3/ 8 2/ 64 37.40625 1.2.3.1.- Conversión entre los sistemas numéricos binario y octal Como se ha planteado, la conversión entre los sistemas binarios y octal es simple, basta reagrupar 3 cifras binarias de derecha a izquierda y convertirlas a su equivalente octal (ver tabla 1.2), por ejemplo: 01101100111b = 1547o donde, de derecha a izquierda: 111b = 7o, 100b = 4o, 101b = 5o y 001b = 1o. Nótese como en el dígito de la izquierda pueden faltar bits, sustituyéndolos por cero(s). Para realizar el proceso inverso, transformar de octal a binario, basta sustituir cada cifra en octal por las tres equivalentes en binario, como se muestra a continuación: 3420o = 011100010000b donde, de derecha a izquierda: 0o = 000b, 2o = 010b, 4o = 100b y 3o = 011b

La base de operaciones de una computadora está organizada en 8, 16 ó 32 cifras binarias, las cuales constituyen 3, 6 y 11 cifras octales respectivamente. 1.2.4.-Sistema Hexadecimal El sistema hexadecimal, a pesar de ser un sistema numérico más difícil de comprender que el octal, es el más utilizado, debido a que el agrupamiento de cifras binarias en las computadoras es un múltiplo de 4. Este sistema, como el octal, permite simplificar la manipulación de grandes cadenas de cifras binarias. La base del sistema hexadecimal es 16 y las cifras básicas son 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E y F. Nótese como, al excederse los tipos de cifras que constituyen al sistema decimal, se han utilizado caracteres para los números 10,11,12,13,14 y 15. Decimal Binario Octal Hexadecimal 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F Tabla 1.2- Conversión entre los sistemas numéricos decimal, binario, octal y hexadecimal Un número en hexadecimal puede representarse de la siguiente forma: 1C6E.3 16 = 1C6E.3h el cual puede convertirse al sistema decimal aplicando (1.4), de lo que resulta: N 10 3 i ai16 3 1(16 ) 2 12(16 ) 1 6(16 ) 0 14(16 ) 1 3(16 ) i1 = 1 4096 + 12 256 + 6 16 + 14 1 + 3 1/16 = 7278.1875 Nótese como (ver la tabla 1.2), hay que hacer las sustituciones basándose en las igualdades: A = 10, B = 11, C = 12, D = 13, E = 14 y F = 15.

1.2.4.1.- Conversión entre los sistemas binario y hexadecimal La equivalencia entre las cifras hexadecimales y binarias se muestra en la tabla 1.2. En este caso se requieren de cuatro cifras binarias por cada cifra hexadecimal (cuatro cifras binarias generan 2 4 = 16 posibles combinaciones, que corresponden con 16 cifras en el sistema hexadecimal). El método de conversión de binario a hexadecimal es semejante al de binario a octal, sólo que ahora se agrupan de 4 en 4 bits, por lo que se cumple: 001011011010.1011b = 2DA.Bh donde, de derecha a izquierda: 1011b = Bh, 1010b = Ah, 1101b = Dh y 0010b = 2h En la conversión de hexadecimal a binario se sustituye cada cifra del sistema hexadecimal por las correspondientes cuatro cifras que la identifican en el sistema binario como se aprecia a continuación: 23E.Fh = 001000111110.1111b siendo la equivalencia de izquierda a derecha: 2h = 0010b, 3h = 0011b, Eh = 1110b y Fh = 1111b Existen otros sistemas dependientes de su base: Trinario (0 al 2), Cuaternario (0 al 3), Duodecimal (0 al B). En todos ellos, los sistemas numéricos de base menor que 10 utilizan los símbolos de las primeras cifras del sistema decimal, los mayores o iguales a 10 las letras del alfabeto latino (A, B, C, etc.). 1.2.5.- Conversión del sistema decimal al resto de los sistemas de numeración Para transformar del sistema numérico decimal a cualquier otro sistema hay que tratar por separado la parte entera y la parte fraccionaria. Cuando se trata la parte entera se supone que el punto está a la derecha de la cifra menos significativa y cuando se trata la parte fraccionaria, entonces se supone que la coma está a la izquierda de la cifra más significativa. 1.2.5.1.- La parte entera del número decimal Para transformar la parte entera del número decimal se divide por la base del sistema al que se quiere transformar tantas veces como sea necesario hasta que el último cociente sea cero. El primer resto obtenido (r 0 ) constituye la cifra menos significativa (la de menor peso) del número que se busca, mientras que el último resto (r n-1, donde n es el número de divisiones a ejecutar o el número de cifras del sistema destino) constituye la cifra más significativa (la de menor peso) del número en cuestión. El número resultante sería: r n-1 r n-2 r n-3... r 0 (1.5)

Ejemplo 1.1: Convertir a binario el número 250 Como se realizan sucesivas divisiones entre la base del sistema destino, se dividirá entre 2 (base del sistema binario), lo cual se muestra en la tabla 1.3. El número resultante sería: r 7 r 6 r 5 r 4 r 3 r 2 r 1 r 0 = 11111010b siendo válida la siguiente equivalencia: 250d = 11111010b División Resultado Resto Cifra 250/2 125 0 r 0 125/2 62 1 r 1 62/2 31 0 r 2 31/2 15 1 r 3 15/2 7 1 r 4 7/2 3 1 r 5 3/2 1 1 r 6 1/2 0 1 r 7 Tabla 1.3.- conversión del número 250 en decimal a binario Existe un método alternativo de conversión decimal a binario denominado potencias de dos. Este método consiste en "examinar" en primer lugar el número decimal para descubrir la mayor potencia de dos que se le puede restar, continuando el proceso hasta reducir el número decimal original a cero. En el ejemplo 1.1, la primera potencia de dos que se le puede restar al número 250 es 128 (la próxima de mayor orden es 256 que supera el número) por lo que la cifra correspondiente del número binario que posea ese peso debe ser uno. Posteriormente se realiza la operación 250-128, de lo que resulta 122. A 122 la próxima potencia de dos que se le puede restar es 64, la sustracción puede ser realizada por lo que la cifra binaria cuyo peso sea 64 debe ser uno. El proceso continúa, siendo el resultado: Potencias de dos: 128 64 32 16 8 4 2 1 Número binario: 1 1 1 1 1 0 1 0 Lo que es equivalente a la solución del ejemplo 1.1. Ejemplo 1.2: Convertir a octal el número 160 Se realiza, para la conversión exigida, sucesivas divisiones entre la base del sistema octal (8), tal y como se muestra en la tabla 1.4.

División Resultado Resto Cifra 160/8 20 0 r 0 20/8 2 4 r 1 2/8 0 2 r 2 Tabla 1.4.- Conversión del número 160 en decimal a octal La solución sería: r 2 r 1 r 0 = 240o lo que es equivalente a: 160d = 240o Ejemplo 1.3: Repita el ejemplo 1.1, utilizando el sistema octal como intermediario Una forma natural de convertir de decimal a binario es a través del sistema octal, que es una base intermedia entre ambos. El sistema octal, al tener mayor base, requiere de menos divisiones. Después de tener el valor en octal, se transfiere a binario de forma directa. Para obtener la solución del problema, primero se transforma 250 a octal, tal y como se muestra en la tabla 1.5. División Resultado Resto Cifra 250/8 31 2 r 0 31/8 3 7 r 1 3/8 0 3 r 2 Tabla 1.5- Conversión del número 250 en decimal a octal Utilizando los resultados de la tabla 1.5 se cumple: 250d = 372o se puede entonces transferir el valor octal a binario de manera directa (utilizando la tabla 1.2): 372o = 011111010b Nótese como el resultado es similar al ejemplo 1.1. Ejemplo 1.4: Convertir a hexadecimal el número 155 En este ejemplo, como la base del sistema hexadecimal es 16, se realizan sucesivas divisiones entre esta base, tal y como se muestra en la tabla 1.6. División Resultado Resto Cifra 155/16 9 11 r 0 9/16 0 9 r 1 Tabla 1.6.- Conversión del número 155 decimal en hexadecimal

Como el número 11 constituye la cifra B en hexadecimal, el resultado sería: por lo tanto: r 1 r 0 = 9Bh 155d = 9Bh Un método alternativo de transformar de decimal a hexadecimal puede ser convertir el número decimal a octal, este a binario y por último a hexadecimal. Ejemplo 1.5: Reproduzca el ejemplo 1.4, utilizando los sistemas binario y octal como intermediarios En primer lugar se realiza la conversión a octal, tal y como se muestra en la tabla 1.7. División Resultado Resto Cifra 155/8 19 3 r 0 19/8 2 3 r 1 2/8 0 2 r 2 Tabla 1.7.- Conversión del número 155 en decimal a octal Del resultado que muestra la tabla 1.7 resulta: 155d = 233o entonces se puede convertir de octal a binario: 233o = 010011011b y finalmente, convertir de binario a hexadecimal: 010011011b = 9Bh Por lo que 155d = 9Bh, lo coincide con el resultado del ejemplo 1.4. Los ejemplos anteriores demuestran que mientras mayor es la base, menor número de cifras para representar un número. El valor 155d posee 8 cifras en el sistema binario (base 2), 3 cifras en el sistema octal (base 8), 3 cifras en el sistema decimal (base 10) y 2 cifras en el sistema hexadecimal (base 16). 1.2.5.2- La parte fraccionaria del número decimal Para transformar la parte fraccionaria de un número decimal a otro sistema, en lugar de dividirla, hay que multiplicarla por la base. Cada vez que se multiplique la fracción decimal por la base se obtiene una parte entera. La primera la denominamos p 1 y se extrae del resultado para que solo quede la parte fraccionaria. Esta parte fraccionaria que queda se multiplica nuevamente por la base y se extrae la parte entera, que denominamos p 2 y así sucesivamente hasta que sea necesario o se indique.

El número resultante en la nueva base será: 0. p 1 p 2 p 3 p 4... p m donde m es el número de cifras de la parte fraccionaria. Ejemplo 1.6: Transforme en octal el número 0.32 Al multiplicar de forma sucesiva por la base del sistema octal (8), resulta: 0.328 = 2.56 (p 1 = 2) 0.568 = 4.48 (p 2 = 4) 0.488 = 3.84 (p 3 = 3) 0.848 = 6.72 (p 4 = 6) 0.728 = 5.76 (p 5 = 5)... El método ejecutado ha sido el siguiente: En primer lugar el número a convertir ha sido multiplicado por la base del sistema que se desea (8), al resultado (2.56) se le ha sustraído la parte entera (2) y este constituirá la cifra más significativa de la parte fraccionaria, al extraérsele a 2.56 la parte entera queda 0.56, al que se le multiplica la base; al resultado (4.48) se le extrae la parte entera (4) y constituirá la próxima cifra de la fracción del número, este proceso continúa sucesivamente. Se puede plantear entonces que: 0.42d = 0.24365... Nótese como el resultado no ha sido exacto, al programador le corresponde seleccionar el número de cifras fraccionarias para una precisión deseada, la cual dependerá de la aplicación. Ejemplo 1.7: Convertir el número 0.125d a binario Como la base del sistema binario es 2, ahora las multiplicaciones sucesivas serán por este término: 0.125 2 = 0.250 (p 1 = 0 ) (cifra más significativa de la parte fraccionaria) 0.250 2 = 0.500 (p 2 = 0) 0.500 2 = 1.000 (p 3 = 1) 0.000 2 = 0.000 (p 4 = 0) y las cifras sucesivas seguirán siendo cero, de la anterior operación resulta: 0.125d = 0.001 Un método más rápido puede ser el transformar la fracción decimal a octal y posteriormente a binario. En el ejemplo 1.7 se aplicaría: 0.125 8 = 1.000 (p 1 = 1) 0.000 8 = 0.000 (p 2 = 0) y las cifras sucesivas seguirán siendo cero.

Se puede entonces afirmar que: 0.125d = 0.1o y de octal a binario: 0.1o = 0.001b lo cual coincide con el resultado de la conversión directa a binario. 1.3- Aritmética en los sistemas numéricos La estructura de datos en los computadores son básicamente agrupaciones de 8, 16 ó 32 bits; todos ellos son potencia de 2 y 4, por lo que se estudiará la aritmética de los números binarios (que constituyen la unidad de información básica de las computadoras) y los números hexadecimales. 1.3.1.- Suma en los sistemas numéricos 1.3.1.1.- Suma binaria La suma de números en el sistema binario sigue las siguientes reglas: Acarreo anterior 1 del lugar menos COSUMANDO 0 0 1 1 1 significativo. SUMANDO +0 +1 +0 +1 +1 SUMA 0 1 1 10 11 Acarreo al siguiente lugar más significativo Las tres primeras reglas son elementales, la cuarta regla establece que la suma 1+1=10, con el bit más significativo trasladado a la próxima posición más significativa. La quinta regla establece que un 1 (acarreo de la operación efectuada en la anterior posición) sumado a 1+1 es 11 donde el 1 de la izquierda constituye acarreo a la posición adyacente más significativa. Ejemplo 1.8: Realice la operación de suma binaria que se muestra a continuación ACARREOS 111 1 COSUMANDO 10011101b 157d SUMANDO +00010101b + 21d SUMA 10110010b 178d La suma de los números binarios mostrados es 10110010b, lo que puede comprobarse con la suma equivalente decimal que se desarrolla a la derecha.

1.3.1.2.- Suma hexadecimal La complejidad de la suma hexadecimal radica en la necesidad de reajustar el resultado de la operación de acuerdo a la base, al sumar A + B se debe pensar A es 10 en el sistema decimal al que debo sumarle 11, que es el decimal de B; el resultado es 21 en decimal. El hexadecimal 10h es 16 en decimal, al que le falta 5 para llegar a 21d, por lo tanto 21d = 15h. Si se reajustan las reglas del sistema decimal al hexadecimal y se aplican adecuadamente, se puede operar en hexadecimal de manera directa. No obstante puede tomarse como referencia la tabla 1.8 para la realización de la suma en hexadecimal. En cuanto al acarreo, sigue la misma regla que los sistemas decimal y binario. + 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 0 1 2 3 4 5 6 7 8 9 A B C D E F 1 1 2 3 4 5 6 7 8 9 A B C D E F 10 2 2 3 4 5 6 7 8 9 A B C D E F 10 11 3 3 4 5 6 7 8 9 A B C D E F 10 11 12 4 4 5 6 7 8 9 A B C D E F 10 11 12 13 5 5 6 7 8 9 A B C D E F 10 11 12 13 14 6 6 7 8 9 A B C D E F 10 11 12 13 14 15 7 7 8 9 A B C D E F 10 11 12 13 14 15 16 8 8 9 A B C D E F 10 11 12 13 14 15 16 17 9 9 A B C D E F 10 11 12 13 14 15 16 17 18 A A B C D E F 10 11 12 13 14 15 16 17 18 19 B B C D E F 10 11 12 13 14 15 16 17 18 19 1A C C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B D D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C E E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D F F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E Tabla 1.8.- Suma en el sistema hexadecimal Ejemplo 1.9: Realice la operación de suma hexadecimal que se muestra a continuación ACARREO 1 1 1 1 COSUMANDO 8EE4h 36580d SUMANDO +1AF8h + 6904d SUMA A9DCh 43484d La suma hexadecimal se podría analizar de la siguiente forma: "4 más 8 son 12, que corresponde a C en hexadecimal. Eh corresponde al 14d y Fh al 15d, 14 más 15 es 29, 10h corresponde a 16d y a este último le faltan 13d para 29; 13d corresponde a Dh y se arrastra un acarreo. E es 14 que al sumarle 1 (acarreo de la anterior posición) da 15d, a este se le suma 10 que es el decimal de Ah, lo que es igual a 25. 10h corresponde con 16d al cual le faltan 9 para llegar a 25, coloco el 9 y se genera acarreo a la próxima cifra más significativa. Lo restante es obvio, 1 + 8 + 1 = 10d que corresponde con Ah". Compare este resultado con la tabla 1.8.

1.3.2.- Sustracción en los sistemas numéricos 1.3.2.1.- Sustracción binaria La sustracción binaria sigue las siguientes reglas: 0 10 MINUENDO 0 1 1 1 0 SUSTRAENDO -0-0 -1-1 DIFERENCIA 0 1 0 1 Las tres primeras operaciones son las mismas que la resta decimal. La cuarta requiere un préstamo del lugar más significativo pasando a ser el minuendo 10b (2d) que al restarle 1 da uno como resultado. Ejemplo 1.10: Realice la operación de sustracción binaria que se muestra a continuación PRÉSTAMO 11 1 MINUENDO 1001110b 78d SUSTRAENDO -0110101b -53d DIFERENCIA 0011001b 25d En la primera columna de derecha a izquierda, a cero no se le puede sustraer uno, por lo que se le solicita préstamo a la cifra inmediata más significativa (minuendo) cuyo valor pasa de uno a cero, de ello resulta que en la columna menos significativa la operación es 10b-1=1. En la segunda columna queda 0-0 = 0 (recuérdese que el minuendo cedió una unidad a la cifra menos significativa). Las operaciones de las columnas 3 y 4 son básicas, en la quinta columna sucede lo mismo que en la primera, pero el minuendo de la sexta columna es cero, por lo que no puede ceder ninguna unidad, para poder hacerlo la sexta columna solicita préstamo a la séptima (cifra diferente de cero), entonces el minuendo de la séptima columna pasa a 0; el minuendo de la sexta pasa a 10 y la quinta le solicita a la sexta, como se aprecia en la operación. Nótese que cuando tratamos 10b no nos referimos al 10 decimal, si no al 2 en binario. 1.3.2.2.- Sustracción en hexadecimal La sustracción en hexadecimal cumple las mismas reglas que la sustracción decimal y binaria, reajustándose el resultado de acuerdo a la base. Cuando se pide un préstamo se reduce en uno la anterior posición (más significativa) y se suma 16 a la cifra que ha solicitado el préstamo. Ejemplo 1.11: Realice la sustracción en hexadecimal que se muestra a continuación PRÉSTAMO 1 MINUENDO 6AEBh SUSTRAENDO -23F9h DIFERENCIA 46F2h En este ejemplo se opera de la siguiente forma: "B es equivalente a 11, 11 menos 9 es 2, lo que se anota; E es equivalente a 14, al que no se puede restar 15 (valor de F) por lo que se solicita un préstamo a la posición más significativa que pasa de A (10 decimal) a 9. Como resultado del préstamo el valor del

minuendo de la columna 2 es 16 (base) + 14 = 30, 30 menos 15 es 15, que representa a F en hexadecimal, cifra que se anota. En la tercera columna 9 menos 3 es 6 y en la última 6 menos 2 es 4". 1.3.3.- Multiplicación binaria La multiplicación binaria sigue las reglas que muestra la tabla 1.9. Multiplicando Multiplicador Producto 0 0 0 1 0 0 0 1 0 1 1 1 Tabla 1.9.- Reglas de la multiplicación binaria Se puede apreciar que siempre que el multiplicador sea 0, el resultado será 0 (de las dos primeras reglas) y que siempre que el multiplicador sea 1 el multiplicando se copia como producto resultante (las dos últimas reglas). Ejemplo 1.12: Realice la operación de multiplicación binaria que se muestra a continuación MULTIPLICANDO 1010 10 MULTIPLICADOR 101 5 PRIMER PRODUCTO PARCIAL 1010 50d SEGUNDO PRODUCTO PARCIAL 0000 TERCER PRODUCTO PARCIAL 1010 PRODUCTO FINAL 110010b Como en la multiplicación decimal el multiplicando en binario se multiplica primero por la cifra menos significativa del multiplicador, como esta última es 1, se copia el multiplicando (primer producto parcial). Como la segunda cifra del multiplicador es cero, el resultado será cero en todas las cifras (0000), colocándose desplazado una unidad a la izquierda (segundo producto parcial). Por último la tercera cifra del multiplicador es 1, por lo que se copia el multiplicando desplazado una unidad a la izquierda con respecto al segundo producto parcial. La suma de los productos parciales, por supuesto, será el resultado de la multiplicación. La comprobación de que el resultado es correcto, se muestra a la derecha, donde se ha ejecutado la misma operación en decimal. Para que la computadora sea capaz de realizar la multiplicación como se ha mostrado, debe ser capaz de: 1.- Determinar si un bit del multiplicador es 0 ó 1. 2.- Desplazar los productos parciales. 3.- Adicionar los productos parciales. No es necesario esperar que todos los productos parciales estén formados para sumar estos, se puede sumar de dos en dos.

Del ejemplo anterior, los primeros dos productos parciales son: 1010 +0000 01010 Nótese como el segundo producto parcial ha sido rotado una unidad a la izquierda. A la suma anterior se le adiciona el tercer producto parcial después de ser rotado a la izquierda, siendo el resultado: 01010 + 1010 110010 Considerando lo anterior, una multiplicación puede ejecutarse muestreando cada bit en turno del multiplicador, adicionando el multiplicando en una variable que sea de suma parcial, desplazar el multiplicando a la izquierda cada vez que un nuevo bit es muestreado, obteniéndose como resultado de la suma de los productos parciales el producto. El proceso en el ejemplo 1.12 se realiza como se muestra en el algoritmo 1. I II Resultado Parcial Multiplicador Comentario 0000 0101 Se multiplica 105 El resultado parcial se inicializa a 0. 0000 0010 1 1. Se rota I y II a la derecha, +1010 muestreando el bit de la derecha muestreado del multiplicador, como éste es 1, 1010 se le suma el multiplicando a I. 0101 0001 0 2. Se rota I y II a la derecha, como el bit muestreado es muestreado 0, se continúa el proceso. 0010 1000 1 3. Se rota I y II a la derecha, +1010 como el bit muestreado es muestreado 1, se le suma el multiplicando a I. 1100 0110 0100 0 4. Se rota I y II a la derecha. como el bit muestreado es muestreado 0, se continúa el proceso. 0011 0010 5. Se rota I y II a la derecha y en ellos quedará el resultado. Algoritmo 1.- Pasos para ejecutar la multiplicación del ejemplo 1.12

Cuando se multipliquen números signados, si el signo del multiplicando y el multiplicador son ambos positivos o negativos, el resultado será positivo; si solo uno es negativo, el resultado será negativo. Para lograr ello se puede almacenar el bit del signo y realizar las operaciones con números positivos, al final se realizaría el cambio de signo correspondiente. 1.3.4.- División binaria Las reglas de la división se muestran en la tabla 1.10. Dividendo Divisor Cociente 0 1 0 1 1 1 1 0 Indefinido 0 0 Indefinido Tabla 1.10.- Reglas de la división binaria La división posee un dividendo, un divisor, un cociente y un resto. El cociente indica cuántas veces cabe el dividendo dentro del divisor. Ejemplo 1.13: Realice la división binaria que se muestra a continuación DIVIDENDO DIVISOR 101011011 111 347 7 111 28 49 110001 0111 COCIENTE 67 111 63 0001011 4 111 0100 RESTO Como se puede apreciar, el divisor posee tres cifras, se toman entonces las tres primeras cifras más significativas (101) del dividendo. Como el valor de las tres cifras es menor que el divisor se toma una cuarta, ahora 1010 es mayor que el divisor siendo el primer cociente 1. Al multiplicar el cociente por el divisor se copia este último, sustrayéndolo al dividendo. El resultado como se aprecia es 011 al cual se le adiciona la quinta cifra del dividendo (resultando 111). A este valor se le puede sustraer el divisor, por lo que el cociente es 1 (se anota), siendo el resto 0. Al bajar la sexta cifra del dividendo no se le puede sustraer el divisor por lo que el cociente es 0, así sucesivamente se le van adicionando las restantes cifras del dividendo y colocando los ceros correspondientes en el cociente (tantos como cifra bajadas) hasta que se le pueda sustraer el divisor, esto ocurre con la cifra menos significativa del dividendo, el último valor del cociente es 1 y el resto es 100. La comprobación, efectuada esta misma operación en el sistema decimal, se muestra a la derecha. Para que una computadora realice la división, la operación fundamental es la sustracción del dividendo, después de esta operación:

a.-si el resultado es negativo, se coloca un cero en el cociente (en el bit más a la derecha) y el dividendo se restablece a su valor original, sumándole el divisor restado. Posteriormente, el cociente y el dividendo son rotados simultáneamente a la izquierda. b.-si el resultado de la sustracción es positivo o cero, un uno se coloca en el dígito más a la derecha del cociente, rotando a la izquierda el dividendo y el cociente. Los pasos para lograr la división serían: 1.- Se le resta al dividendo el divisor, si este último es mayor (el resultado es negativo), el cociente será cero y el resto será el valor del dividendo. 2.- Se alinea el bit más a la izquierda cuyo valor es uno en el divisor con el bit más a la izquierda del dividendo cuyo valor es uno, rotando este último a la izquierda y almacenando en una variable M el número de veces que es necesario realizar el desplazamiento. 3.- El paso básico será repetido M+1 veces. 4.- Se ajusta el resto, rotando M+1 veces a la derecha lo que antes era dividendo después que el último paso básico se haya realizado. En el ejemplo 1.13 las condiciones iniciales son: 1 2 3 Cociente Dividendo divisor 0000000000 0101011011 0000000111 0111000000 donde se divide 347 / 7 = 49, siendo el resto 4. El divisor será rotado seis veces a la izquierda para alinearlo al dividendo, por tanto, el paso básico se realizará siete veces. En algoritmo 2 se muestran los pasos de la división. 1.4.- Representación de los datos en las computadoras La información numérica se almacena en localizaciones de memoria de la computadora. Cada localización de memoria (o unidad de información) puede tener uno de dos estados posibles (la forma de almacenar la información depende del tipo de memoria, por ejemplo las memorias RAM dinámicas poseen en una celda un transistor MOS y un capacitor, la carga y descarga de este último define los dos estados posibles). A la información almacenada en una localización de memoria se le llama dígito binario o bit (proviene de la palabra Binary digit, nótese las letras en mayúsculas). La computadora trata la información almacenada en las memorias como una agrupación de bits, a esta agrupación de bits se le denomina registro de almacenamiento. El registro de almacenamiento determina como pueden ser almacenados los datos en un ordenador, lo cual se aprecia en la fig. 1.2.

COCIENTE DIVIDENDO COMENTARIO 0000000000 0101011011 2.Se sustrae 2 menos 3.El -0111000000 resultado es negativo por lo que se coloca un 1110011011 cero en el cociente ro- +0111000000 tando este y el dividen- do a la izquierda después 0101011011 de ser restaurado este 0000000000 1010110110 último. Colocado 0000000000 1010110110 3.Se sustrae 2 menos 3.El -0111000000 resultado es positivo y se coloca 1 en el bit 0011110110 más a la derecha del cociente y se rota este 0000000001 0111101100 y el 2 a la izquierda. Colocado 0111101100 4.Se repite el paso 3. -0111000000 0000101100 0000000011 0001011000 Colocado 0001011000 5.Se repite el paso 2. -0111000000 1010011000 +0111000000 0001011000 0000000110 0010110000 Colocado 0000001100 0101100000 6.Se repite el paso 2. 0000011000 1011000000 7.Se repite el paso 2. 0000110001 1000000000 8.Se repite el paso 3. 0000110001 0000000100 9.El dividendo debe ser rotado 7 veces a la derecha COCIENTE (49) RESTO (4) Algoritmo 2.- Pasos para realizar la división 347 / 7

Un dato, constituido por determinado número de bits, puede ser utilizado para almacenar un número, empleando el sistema de numeración binario. Cada uno de los bits que forman el dato puede tomar el valor 0 ó 1, de manera que si este tiene n bits, con el dato se pueden formar: Número de combinaciones de un dato = 2 n (1.6) La figura 1.3 muestra un dato genérico, donde n es el número de bits. Cuando n = 8 se tendrá un octeto (byte), si n = 16 se tendrá una palabra (word) y si n = 32 se tendrá una palabra doble (double word). Esta estructura de datos se aprecia en la figura 1.2. Los bits se enumeran de derecha a izquierda comenzando por cero. Al bit cero se le denomina bit menos significativo o LSB (del inglés Least Significant Bit) y al bit n-1 se le llama bit más significativo o MSB (del inglés Most Significant Bit). bit cuarteto o nibble ( 4 bits) octeto o byte (8 bits) palabra ( 2 bytes, 16 bits) palabra doble (32 bits)...... bloque Figura 1.2- Formato de datos en las computadoras n-1 n-2 n-3 n-4 3 2 1 0 Posición _... del bit _..._ MSB LSB Bit más significativo Bit menos significativo Figura 1.3.- Dato de n bits 1.4.1.- Representación de números enteros Los números enteros pueden clasificarse en dos grupos: a-) Números enteros sin signo. b-) Números enteros con signo. 1.4.1.1.- Números enteros sin signo Los números enteros sin signo están en el rango: