Download Sistemas de representación - números enteros

Document related concepts

Sistema hexadecimal wikipedia , lookup

Representación de números con signo wikipedia , lookup

Sistema binario wikipedia , lookup

Sistema de numeración decimal wikipedia , lookup

Complemento a dos wikipedia , lookup

Transcript
Organización del Computador 1
Sistemas de Representación
Organización
 Los
computadores comprenden el lenguaje
de los números
 La organización de un computador depende
entre otros factores del sistema de
representación numérica adoptado
 Se trabaja con el sistema binario, de donde
proviene el término bit como contracción de
“binary digit”
Sistemas de numeración
 Un
sistema de numeración es un conjunto
de símbolos y un conjunto de reglas de
combinación de dichos símbolos que
permiten representar los números enteros y/o
fraccionarios.
 Dentro de los sistemas de numeración
posibles un conjunto importante, destacado,
es el constituido por los sistemas de
numeración posicionales.
Sistemas de numeración
 En
un sistema de numeración posicional de
base b, la representación de un número se
define a partir de la regla:
(…a3a2a1a0.a-1 a-2 a-3 …)b= …+ a2b2+ a1b1+ a0b0+ a-1b-1+ a-2b-2+ a-3b-3+ …



Donde b es un entero no negativo mayor a 1 y
cuando los ai pertenecen al conjunto de enteros
en el rango 0 ≤ai< b
El punto que aparece entre los dígitos a0 y a-1 se
denomina punto fraccionario.
Cuando b = 10 se lo llama punto decimal y
cuando b = 2, punto binario.
Sistemas de numeración

Sistema Decimal: Es el sistema de numeración
utilizado en la vida cotidiana, cuya base es diez,
utilizando los símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9 .
 Sistema Binario: los dos símbolos utilizados son el
0 y el 1, los que reciben el nombre de bit
(binarydigit).
 Sistema Octal: de base 8, los símbolos utilizados
son 0, 1, 2, 3, 4, 5, 6,7.
 Sistema Hexadecimal: de base 16, los símbolos
utilizados son 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Ejemplos
243.5110 = 2 * 102 + 4 * 101 + 3 * 100 + 5 * 10-1
+ 1 * 10-2
2123 = 2 * 32 + 1 * 31 + 2 * 30 = 2310
101102 = 1 * 24 + 0 * 23 + 1 * 22 + 1 * 21 + 0 * 20
= 2210
Métodos de cambio de base

Método de restas
sucesivas

Método del resto de
cocientes
Representemos 10410 en base 3
Métodos de cambio de base
(para fracciones)

Métodos de restas
sucesivas

Métodos del resto de
cocientes
Representemos 0.430410 en base 5
Métodos de cambio de base
(para fracciones)
Las fracciones no siempre pueden ser convertidas en
forma exacta, con una expresión finita.
(0.3)3 = 2 * 3-1 = 2 + 1/3
En definitiva, las fracciones en una base sólo pueden
ser estimadas como una expresión finita en otra.
Conversión de números con signo

Signed magnitude: El bit más a la izquierda es
usado como indicador de signo. 1 implica que el
número es negativo, 0 que es positivo.


Si usamos palabras de 8 bits, vamos a poder representar
el rango [-(27-1), 27-1]. En general, sobre palabras de n
bits podremos representar el rango [-(2n-1), 2n-1].
La suma es igual que en el sistema decimal, incluyendo
el concepto de acarreo:
En caso de llegar con un
acarreo al bit 8, nos
encontramos en una
situación de overflow.
Conversión de números con signo

Sistemas de complemento: la idea es usar los
números “más altos” como números negativos.

El complemento de un número se obtiene restándo dicho
número al número más grande que puede representarse
con el tamaño de palabra con que contamos.
(-52)10 = (999)10 – (52)10 = (947)10
(167)10 – (52)10 = (167)10 + (947)10 = (114)10 + (1)10 =
(115)10


El acarreo se suma al dígito menos significativo.
El complemento a r en d dígitos del número N es (rd-1)-N.
Conversión de números con signo

Complemento a 1: La idea es igual a lo que vimos
en base 10 sólo que las operaciones se realizarán
entre expresiones binarias: En este caso, el rango
representado es el mismo que el que presentamos
para signed magnitude.
(-101)2 = (1111)2 – (0101)2 = (1010)2
Ejercicio: convencerse de que tomar el
complemento a 1 de un número binario es apenas
invertir los dígitos.
Conversión de números con signo

Complemento a 2: La idea detrás de este método
es la misma que se presentó como Complemento
a 1, salvo que realizaremos la resta sobre el menor
número que resulta mayor a todos los números
representables con el tamaño de palabra con el
que contamos:
(-101)2 = (10000)2 – (00101)2 = (1011)2
Ejercicio: convencerse de que complemento a 2 no es más
que complemento a 1, más 1.
El rango representable con complemento a 2 es [-(2n-1), 2n-1-1]
El complemento a r en d dígitos del número N es rd-N si N != 0 y 0 en
caso contrario.
Representación decimal de un número en
complemento a 2

Para los positivos es
trivial, se hace lo que
vimos en
transparencias
anteriores evaluando el
polinomio que
corresponda a la
expresión binaria.

En el caso de los
negativos debemos
hacer el procedimiento
inverso.
Se invierten los bits,
 Se suma 1,
 Se convierte a decimal
 Se le coloca el signo –
adelante
Esto es equivalente a
obtener el complemento
a 1 y sumarle 1.

Suma en complemento a 2

La suma se opera exáctamente igual a la suma en
complemento a 1. La resta, al igual que vimos
antes se reduce a la suma del complemento del
sustraendo.
 Detectando overflow: Si el acarreo sobre el bit
de signo es igual al acarreo fuera de dicho bit, no
hay overflow. En caso que sean distintos sí lo hay.
Multiplicación de enteros

Hay casos en los que se cuenta con hardware
que optimiza esta operacióne, pero en el fondo
son optimizaciones sobre el método que nos
enseñaron en la primaria.

Se basa en el simple hecho de que 0
multiplicando cualquier número es 0 y 1
multiplicando cualquier número es ese mismo
número.
Multiplicando números enteros

La clave del algoritmo es reproducir el
desplazamiento que se produce antes de la
adición, que no es más que un decalaje en una
posición.
Dividiendo números enteros

Al igual que en la multiplicación, hay casos en
los que se cuenta con hardware que optimiza
esta operación, pero nuevamente el método es
el más intuitivo.
 Se basa en la sucesiva sustracción del divisor al
dividendo.
 En el caso de la división entera, el resultado es
presentado como dos números, cociente y resto.
Bibliografía

Null, L. and J. Lobur. The Essentials of Computer
Organization and Architecture, Jones and Bartlett
Publishers, Feb. 2003