Está en la página 1de 22

Sistemas numéricos

-números negativos-

Taller de programación

I semestre, 2016
Temas

● Números negativos
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.
Números binarios negativos

Signo y magnitud Complemento a uno


Se utiliza el bit más significativo para denotar En este método se sigue utilizando el bit más
el signo del número representado. significativo para representar el signo de los
números (el cero para positivo), pero la
● Si esta en cero quiere decir que el número representación de los negativos cambia
es positivo y en uno es negativo. 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?


Este método a pesar de ser sencillo para los
h.s.s es complicado de procesar en un ¿Cómo represento el cero?
computador en el cual se quieren incorporar
operaciones aritméticas... (o sea todos)
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.
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?
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.
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!
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
Referencias y Lecturas Complementarias

● Material suministrado por el profesor Jeff Schmidt, Instituto Tecnológico de Costa


Rica. I semestre 2011.

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/ 11
http://creativecommons.org/licenses/by-sa/3.0/cr/
*La licencia de la presentación no cubre las imágenes utilizadas*
Sistemas numéricos
-números negativos-

Taller de programación

I semestre, 2016
Temas

● Números negativos
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.
Números binarios negativos

Signo y magnitud Complemento a uno


Se utiliza el bit más significativo para denotar En este método se sigue utilizando el bit más
el signo del número representado. significativo para representar el signo de los
números (el cero para positivo), pero la
● Si esta en cero quiere decir que el número representación de los negativos cambia
es positivo y en uno es negativo. 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?


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

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: 00000000
Cero negativo: 11111111
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.
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)
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.
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!
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
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.
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/ 11
http://creativecommons.org/licenses/by-sa/3.0/cr/
*La licencia de la presentación no cubre las imágenes utilizadas*

También podría gustarte