sistemas numéricos -números negativos-ausanabria/files/2017iscursos/taller/... · 2017-10-31 ·...

22
Sistemas numéricos -números negativos- Taller de programación I semestre, 2016

Upload: others

Post on 20-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Sistemas numéricos-números negativos-

Taller de programación

I semestre, 2016

Page 2: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Temas

● Números negativos

Page 3: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Números binarios negativos

Problema: ¿cómo representar números negativos en un mecanismo computacional?

- Como es de esperar han surgido varias formas de solucionarlo, por ejemplo los métodos (o sistemas):

● Signo y magnitud

● Complementos a uno (la base disminuida)

Sin embargo el método que ha funcionado mejor y por ende se sigue utilizando de formas más general es el complemento a dos o complemento a la base.

Page 4: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Números binarios negativos

Signo y magnitud

Se utiliza el bit más significativo para denotar el signo del número representado.

● Si esta en cero quiere decir que el número es positivo y en uno es negativo.

Este método a pesar de ser sencillo para los h.s.s es complicado de procesar en un computador en el cual se quieren incorporar operaciones aritméticas... (o sea todos)

Complemento a uno

En este método se sigue utilizando el bit más significativo para representar el signo de los números (el cero para positivo), pero la representación de los negativos cambia ligeramente.

Dado un tamaño fijo para la representación de los números (8bits), tendríamos que la representación de (7)10 en binario complemento a uno es: 00000111 (en azul se marca el signo)

Su correspondiente negativo se obtiene invirtiendo todos los bits del número, o sea (-7)10= (11111000)2 complemento a uno.

¿En 8 bits cuantos números puedo representar?

¿Cómo represento el cero?

Page 5: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Números binarios negativos

Complemento a dos

Es el método utilizado en los procesadores actuales.

La representación de números positivos utilizando complemento a dos es exactamente igual a como se ha presentado anteriormente. En el caso de los número negativos el procedimiento consiste en sacar el complemento a uno del número que quiero representar y luego sumarle 1.

● Recordar que en esta representación también se trabaja con número de tamaño fijo.

Si utilizamos una representación en 8 bits, la representación del número -77 sería:

1. 77 (positivo) en binario (8bits) es: 01001101

2. El complemento a uno de 77 (positivo es): 10110010

3. Luego le sumamos uno al complemento: 10110010 + 00000001 = 10110011

Nota: el bit más significativo indica si el número es positivo (0) o negativo(1). En caso de ser negativo para saber que número representa se puede convertir con el mismo procedimiento a su valor positivo y luego ya sabremos cual número negativo representaba.

Page 6: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Números binarios negativos

● La primera columna muestra los posibles patrones que se pueden representar utilizando 8 bits (combinaciones).

● La segunda corresponde al número decimal que representa el patrón de la columna uno.

● La tercera y cuarta indican la interpretación que se le da a las distintas representaciones según se utilice complemento a dos o complemento a uno respectivamente.

● ¿Cuantos distintos valores puedo representar utilizando 8 bits y complemento a dos?

Page 7: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Aritmética en complemento a dos

Los procesadores actuales utilizan aritmética en complemento a dos porque permiten crear circuitos sencillos, eficientes y baratos

● Utilizando complemento a dos no es necesario modificar la circuitería requerida para sumar con operandos positivos y/o negativos. Por ejemplo:

● Una vez efectuada la suma, si hubiera un acarreo este se descarta.

El circuito sumador (en el ALU) no sabe si un número es positivo o negativo, el simplemente suma y es responsabilidad del programador saber interpretar la representación.

● Esto nos permite operar con números con o sin signo de la misma manera.

Es muy importante tener claro los posibles valores que se pueden representar con el número de bits en que se de la representación de los números. Ej: en 8 bits solo puedo operar con números entre -128 y 127, fuera de ese rango habría un error en el resultado.

Page 8: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Aritmética en complemento a dos

Esta representación nos permite trabajar las restas utilizando el mismo circuito que realiza las sumas.

● El procedimiento consiste en sumar el minuendo con el complemento a dos del sustraendo.

● Una vez efectuada la suma, si hubiera un acarreo este se descarta.

¡Acarreo se descarta!

Page 9: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Aritmética

Ejercicio: convierta a binario y realice las operaciones aritméticas

Asuma que el tamaño de los registros (precisión) es de 8 bits e indique cuando hay un acarreo.

● (CC)16 + (3B)16, (B5)16 + (8F)16, (A7)16 + (1F)16,

● (AB)16 + (CD)16, (32)16 + (65)16,

● (8)16 - (1)16, (C4)16 - (25)16, (EE)16 – (BA)16

● (1001)2 * (1100)2, (1101)2 * (1111)2

● (101000)2 / (1000)2, (100111.0)2 / (110)2

Utilizar complemento a dos:

● (DB)16 - (B2)16 (8B)16 - (81)16 (86)16 – (36)16

Page 10: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Referencias y Lecturas Complementarias

● Material suministrado por el profesor Jeff Schmidt, Instituto Tecnológico de Costa Rica. I semestre 2011.

Page 11: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

11

Las presentaciones para el curso IC-1801: "Taller de Programación" por Ing. En Computación

Alajuela se distribuyen bajo una Licencia Creative Commons Atribución-Compartir Igual 3.0 Costa

Rica.

http://creativecommons.org/licenses/by-sa/3.0/cr/http://creativecommons.org/licenses/by-sa/3.0/cr/ *La licencia de la presentación no cubre las imágenes utilizadas*

Page 12: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Sistemas numéricos-números negativos-

Taller de programación

I semestre, 2016

Page 13: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Temas

● Números negativos

Page 14: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Números binarios negativos

Problema: ¿cómo representar números negativos en un mecanismo computacional?

- Como es de esperar han surgido varias formas de solucionarlo, por ejemplo los métodos (o sistemas):

● Signo y magnitud

● Complementos a uno (la base disminuida)

Sin embargo el método que ha funcionado mejor y por ende se sigue utilizando de formas más general es el complemento a dos o complemento a la base.

Page 15: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Números binarios negativos

Signo y magnitud

Se utiliza el bit más significativo para denotar el signo del número representado.

● Si esta en cero quiere decir que el número es positivo y en uno es negativo.

Este método a pesar de ser sencillo para los h.s.s es complicado de procesar en un computador en el cual se quieren incorporar operaciones aritméticas... (o sea todos)

Complemento a uno

En este método se sigue utilizando el bit más significativo para representar el signo de los números (el cero para positivo), pero la representación de los negativos cambia ligeramente.

Dado un tamaño fijo para la representación de los números (8bits), tendríamos que la representación de (7)10 en binario complemento a uno es: 00000111 (en azul se marca el signo)

Su correspondiente negativo se obtiene invirtiendo todos los bits del número, o sea (-7)10= (11111000)2 complemento a uno.

¿En 8 bits cuantos números puedo representar?

¿Cómo represento el cero?

Signo y magnitud es la forma más sencilla.

En complemento a uno, lo único que hago es invertir todos los bits. (incluido el de signo)

¿En 8 bits cuantos números puedo representar?2**8 = 256 signos distintos.

128 positivos y 128 negativos (recordemos que el bit más significativo es el signo), o sea el cero más 127 números, o sea represento el rango de -127 hasta 127. (pero tengo dos representaciones para el cero)

¿Cómo represento el cero? Tiene dos representaciones:Cero positivo: 00000000Cero negativo: 11111111

Page 16: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Números binarios negativos

Complemento a dos

Es el método utilizado en los procesadores actuales.

La representación de números positivos utilizando complemento a dos es exactamente igual a como se ha presentado anteriormente. En el caso de los número negativos el procedimiento consiste en sacar el complemento a uno del número que quiero representar y luego sumarle 1.

● Recordar que en esta representación también se trabaja con número de tamaño fijo.

Si utilizamos una representación en 8 bits, la representación del número -77 sería:

1. 77 (positivo) en binario (8bits) es: 01001101

2. El complemento a uno de 77 (positivo es): 10110010

3. Luego le sumamos uno al complemento: 10110010 + 00000001 = 10110011

Nota: el bit más significativo indica si el número es positivo (0) o negativo(1). En caso de ser negativo para saber que número representa se puede convertir con el mismo procedimiento a su valor positivo y luego ya sabremos cual número negativo representaba.

Page 17: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Números binarios negativos

● La primera columna muestra los posibles patrones que se pueden representar utilizando 8 bits (combinaciones).

● La segunda corresponde al número decimal que representa el patrón de la columna uno.

● La tercera y cuarta indican la interpretación que se le da a las distintas representaciones según se utilice complemento a dos o complemento a uno respectivamente.

● ¿Cuantos distintos valores puedo representar utilizando 8 bits y complemento a dos?

●¿Cuantos distintos valores puedo representar utilizando 8 bits y complemento a dos?

Desde el -128 hasta el 127 (positivo), me gané un número negativo con respecto al complemento a dos. Pero muchas facilidades para llevar acabo operaciones aritméticas en un procesador (restas, con un sumador, por ejemplo)

Page 18: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Aritmética en complemento a dos

Los procesadores actuales utilizan aritmética en complemento a dos porque permiten crear circuitos sencillos, eficientes y baratos

● Utilizando complemento a dos no es necesario modificar la circuitería requerida para sumar con operandos positivos y/o negativos. Por ejemplo:

● Una vez efectuada la suma, si hubiera un acarreo este se descarta.

El circuito sumador (en el ALU) no sabe si un número es positivo o negativo, el simplemente suma y es responsabilidad del programador saber interpretar la representación.

● Esto nos permite operar con números con o sin signo de la misma manera.

Es muy importante tener claro los posibles valores que se pueden representar con el número de bits en que se de la representación de los números. Ej: en 8 bits solo puedo operar con números entre -128 y 127, fuera de ese rango habría un error en el resultado.

En la suma es de vital importancia utilizar una representación de tamaño fijo o sea que si se utiliza el bit más significativo como signo se debe respetar en el resultado.

Ej: si la representación es de 8 bits, entonces los posibles valores serán de -127 hasta 127, lo cual quiere decir que se debe tener cuidado con las sumas que den como resultado más de 127.

Page 19: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Aritmética en complemento a dos

Esta representación nos permite trabajar las restas utilizando el mismo circuito que realiza las sumas.

● El procedimiento consiste en sumar el minuendo con el complemento a dos del sustraendo.

● Una vez efectuada la suma, si hubiera un acarreo este se descarta.

¡Acarreo se descarta!

Page 20: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Aritmética

Ejercicio: convierta a binario y realice las operaciones aritméticas

Asuma que el tamaño de los registros (precisión) es de 8 bits e indique cuando hay un acarreo.

● (CC)16 + (3B)16, (B5)16 + (8F)16, (A7)16 + (1F)16,

● (AB)16 + (CD)16, (32)16 + (65)16,

● (8)16 - (1)16, (C4)16 - (25)16, (EE)16 – (BA)16

● (1001)2 * (1100)2, (1101)2 * (1111)2

● (101000)2 / (1000)2, (100111.0)2 / (110)2

Utilizar complemento a dos:

● (DB)16 - (B2)16 (8B)16 - (81)16 (86)16 – (36)16

Page 21: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

Referencias y Lecturas Complementarias

● Material suministrado por el profesor Jeff Schmidt, Instituto Tecnológico de Costa Rica. I semestre 2011.

Acá tengo que agregar los textos que avilés ha utilizado para esto.

Page 22: Sistemas numéricos -números negativos-ausanabria/files/2017IScursos/taller/... · 2017-10-31 · Números binarios negativos Complemento a dos Es el método utilizado en los procesadores

11

Las presentaciones para el curso IC-1801: "Taller de Programación" por Ing. En Computación

Alajuela se distribuyen bajo una Licencia Creative Commons Atribución-Compartir Igual 3.0 Costa

Rica.

http://creativecommons.org/licenses/by-sa/3.0/cr/http://creativecommons.org/licenses/by-sa/3.0/cr/ *La licencia de la presentación no cubre las imágenes utilizadas*