Representación de
Números Enteros
Prof. Dr. Martín Vázquez
basado en Apunte de Cátedra: Introducción a la Arquitectura de Sistemas, UNCPBA Prof. Hugo Curti
Introducción
Una cosa es la cantidad a representar y otra es la simbología usada para representarla.
La mente humana utiliza el sistema posicional decimal (base diez) para representar cantidades o números.
Se cree que porque tenemos diez dedos
Sistemas posicionales de
representación
Sirve para representar números reales. Posee:
tantos símbolos como indique su base para representar cifras. para base diez. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
para base dos. 0, 1. para base cuatro. 0, 1, 2, 3. signo.
coma raíz (o coma decimal). Separa la parte fraccionaria de la parte entera.
Una cifra tiene diferente valor de acuerdo a su posición Sea Nla cantidad representada
Donde
nes la cantidad de cifras a la izquierda de la coma raíz (parte entera)
des la cantidad de cifras a la derecha de la coma raíz (parte fraccionaria)
Sistemas posicionales de
representación: Sistema Decimal
A la
coma raíz
se la llama
coma decimal
.
La
parte fraccionaria
se denomina
parte decimal
y a
los componentes
decimales
.
La cifra de peso 0 es la
unidad
, la de peso uno es la
decena
, peso dos es la
centena
,…
Sistemas posicionales de
representación: Sistema Binario
La cifra binaria se denomina bit(binary digit).
También se usa para medir espacio ocupado
Una celda de memoria de un bitpuede almacenar dos estados
Cuatro bits agrupados se denomina cuartetoo nibble.
Una celda de memoria de un cuarteto almacena 16 (24) estados. El bytees la unidad binaria más utilizada.
Una celda de un byte almacena 256 (28) estados.
Sistema Binario
Conversión de binario a decimal aplicando la ecuación
Sistema Binario
Conversión de decimal a binario mediante la aplicación
de divisiones/multiplicaciones sucesivas
Para parte entera se leen los restos de las divisiones en sentido inverso Para la parte fraccionaria se toman las cifras enteras de los resultados de las sucesivas multiplicaciones
Sistema Binario: Operaciones
aritméticas
Para la suma/resta en binario se usa el mismo método que en decimal.
Existe concepto de acarreo (carry) en la suma y arrastre (borrow) en la resta.
Representación de números
naturales
Una celda de memoria puede utilizarse para almacenar la representación binaria de un número.
Los sistemas binarios poseen una cantidad de cifras variable, mientras que la celda de memoria una cantidad fija.
Si la cantidad de cifras del número natural a representar es mayor al tamaño de la celda se produce overflow(rebalse) o desbordamiento.
Ejemplo:a =1110 y b = 1000, la representación de dos número naturales, 14 y 8, en celdas de 4 bits. Si se desea representar el resultado, r= a+ b = 10110, en una celda de 4 bits. NO SE PUEDE. La operación de suma produce
overflow.
Sean el tamaño de la celda de memoria, ésta puede representar 2nvalores
naturales, en rango [0, 2n-1]
Representación de números
enteros
Una máquina digital se rige por dos símbolos, 0 y 1. No
existe manera natural de representar el signo o la coma
raíz.
Dos estrategias para considerar el signo
Agregar información a la representación.
Signo y valor absoluto
Se representa el signo agregando un
bit
a la
representación.
Normalmente este
bit
vale 0 para representar un número
positivo y vale 1 para representar un negativo.
Se utiliza la dupla SVA(
b
,
d
)
b
es la base de la representación y
d
es cantidad de
cifras que soporta.
Algunos ejemplos
Signo y valor absoluto
El rango que se puede representar es [-bd+1, bd-1].
Existen 2
bdrepresentaciones.
El cero tiene doble representación.
Si se desea almacenar una representación en SVA en una celda de memoria se usa la base 2 y se debe considerar el bitde signo. Si nes el tamaño de la celda de memoria, se puede almacenar 2n
representaciones de números enteros en el rango R es [-2n-1+1, 2n-1-1].
Signo y valor absoluto
Operaciones aritméticas en SVA
Se pueden usar los mismos circuitos utilizados para
binarios puros (naturales).
Aplicar conversión considerando el signo de los
operandos
En suma/resta, se utiliza el signo de los operandos para
decidir la operación
En multiplicación y división, se usa la regla de los signos
para determinar el signo del resultado.
Complemento a la base menos
uno o complemento a uno
Divide el espacio de representación entre los
números positivos y negativos.
Complemento a uno
Distribución del espacio de representación en complemento
a uno.
Complemento a uno
Para identificar el sistema en complemento a uno, se
utiliza C1(
b
,
d
)
bes la base de la representación y des la cantidad de cifras que soporta.
Complemento a uno
El rango que se puede representar es
Existen
bdrepresentaciones.
El cero tiene doble representación.
Si se desea almacenar una representación en C1 en una celda de memoria se usa la base 2.
Si nes el tamaño de la celda de memoria, puedo almacenar 2n
representaciones de números enteros en el rango R es [-2n-1+1, 2n-1-1].
Ejemplo: Una celda de un byte, puede representar un C1(b, d) con b= 2 y d
= 8 y R = [-127, 127].
Complemento a uno
Operaciones aritméticas en C1
Se pueden aplicar directamente sobre las
representaciones.
Se debe aplicar corrección para obtener la representación
correcta del resultado.
Sea
r
1la representación C1 de
e
1,
r
2la representación de
Complemento a uno
Correcciones en suma en C1
Ejemplo 1.
Sistema C1(2, 4),
e
1=4 y
e
2=2, entonces
e
1+2=6.
r
1=0100 y
r
2=0010
Complemento a uno
Correcciones en suma en C1
Ejemplo 1.
Sistema C1(2, 4),
e
1=4 y
e
2=2, entonces
e
1+2=6.
r
1=0100 y
r
2=0010
Complemento a uno
Correcciones en suma en C1
Ejemplo 1.
Sistema C1(2, 4),
e
1=4 y
e
2=2, entonces
e
1+2=6.
r
1=0100 y
r
2=0010
Operación: 0100 + 0010 = 0110
Como
r
1+2= 0110,
NO es necesario corrección
Complemento a uno
Correcciones en suma en C1
Ejemplo 2.
Complemento a uno
Correcciones en suma en C1
Ejemplo 2.
Sistema C1(2, 4),
e
1=4 y
e
2=5, entonces
e
1+2=9.
r
1=0100 y
r
2=0101
Operación: 0100 + 0101 = 1001
Complemento a uno
Correcciones en suma en C1
Ejemplo 2.
Sistema C1(2, 4),
e
1=4 y
e
2=5, entonces
e
1+2=9.
r
1=0100 y
r
2=0101
Operación: 0100 + 0101 = 1001
r
1+2= 1001,
Existe
overflow
o rebalse.
Complemento a uno
Correcciones en suma en C1
Ejemplo 3.
Sistema C1(2, 4),
e
1=4 y
e
2=-6, entonces
e
1+2=-2.
r
1=0100 y
r
2=1001
Complemento a uno
Correcciones en suma en C1
Ejemplo 3.
Complemento a uno
Correcciones en suma en C1
Ejemplo 4.
Sistema C1(2, 4),
e
1=4 y
e
2=-2, entonces
e
1+2=2.
r
1=0100 y
r
2=1101
Complemento a uno
Correcciones en suma en C1
Ejemplo 4.
Sistema C1(2, 4),
e
1=4 y
e
2=-2, entonces
e
1+2=2.
r
1=0100 y
r
2=1101
Operación: 0100 + 1101 =
1
0001
Como
r
1+2= 0001 es la representación en C1 de 1
Complemento a uno
Correcciones en suma en C1
Ejemplo 5.
Sistema C1(2, 4),
e
1=-4 y
e
2=-2, entonces
e
1+2=-6.
r
1=1011 y
r
2=1101
Complemento a uno
Correcciones en suma en C1
Ejemplo 5.
Complemento a uno
Correcciones en suma en C1
Ejemplo 6.
Sistema C1(2, 4),
e
1=-4 y
e
2=-5, entonces
e
1+2=-9.
r
1=1011 y
r
2=1010
Operación: 1011 + 1010 =
1
0101
Existe
overflow
o rebalse.
No se puede representar el -9 en C1(2, 4)
No se puede solucionar mediante corrección
Comparaciones (1)
C1 vs. SVA
En C1 (base 2) se cambia signo invirtiendo bita bitla
representación. En SVA invirtiendo solo el bitmás significativo. La lógica extra involucrada en la suma/resta en SVA es superior. Para C1 es simple, se suma el acarreo.
Complemento a la base
Similar a C1. Divide el espacio de representación
entre los números positivos y negativos.
Para calcular el complemento a la base
r
cb, a partir del
entero
e
se utiliza
Complemento a la base
Complemento a la base
Para identificar el sistema en complemento a la base, se
utiliza CB(
b
,
d
)
bes la base de la representación y des la cantidad de cifras que soporta.
Algunos ejemplos
Complemento a la base
El rango que se puede representar es
Existen
bdrepresentaciones.
El cero NO tiene doble representación.
Si se desea almacenar una representación en CB en una celda de memoria se usa la base 2.
Si nes el tamaño de la celda de memoria, puedo almacenar 2n
representaciones de números enteros en el rango R es [-2n-1, 2n-1-1].
Ejemplo: Una celda de un byte, puede representar un CB(b, d) con b= 2 y
Complemento a la base
Operaciones aritméticas en CB
Se pueden aplicar directamente sobre las
representaciones.
En suma/resta y multiplicación.
Si no existe overflow, se obtiene la representación del resultado
No se realizan correcciones sobre el resultado obtenido.
Complemento a la base dos
Ejemplo 1.
Complemento a la base dos
Ejemplo 2.
Sistema C2(2, 4),
e
1=-7 y
e
2=1, entonces
e
1+2=-6.
r
1=1001 y
r
2=0001
Operación: 1001 + 0001 = 1010
Como
r
1+2= 1010,
NO es necesario corrección
Complemento a la base dos
Ejemplo 3.
Sistema C2(2, 4),
e
1=-5 y
e
2=-1, entonces
e
1+2=-6.
r
1=1011 y
r
2=1111
Operación: 1011 + 1111 =
1
1010
Complemento a la base dos
Ejemplo 4.
Sistema C2(2, 4),
e
1=-5 y
e
2=-4, entonces
e
1+2=-9.
r
1=1011 y
r
2=1100
Operación: 1011 + 1100 =
1
0111
Existe
overflow
o rebalse.
No se puede representar el -9 en C2(2, 4)
No se puede solucionar
Complemento a la base dos
Ejemplo 5.
Comparaciones (2)
C1 vs. C2
En C2 la inversión de signo es más costosa que en C1. Se
debe invertir la representación
bit
a
bit
y luego sumar uno.
El sistema CB no requiere correcciones en las operaciones
de suma/resta y multiplicación.
Causa principal de por la cuál sea el sistema mas usado en representación de números enteros
Cero desplazado
Como ocurre con C1 y CB, divide el espacio de representación entre los números positivos y negativos.
La principal diferencia es que la representación de los números negativos están primero y la de los positivos después
Para calcular el complemento a la base rcd, a partir del entero ese
utiliza
fse denomina fronteray es el valor que representa el cero. Los valores inferiores a frepresentan enteros negativos, y los valores superiores enteros positivos.
Cero desplazado
Distribución del espacio de representación en sistema de
cero desplazado con frontera equilibrada.
Cero desplazado
Para identificar el sistema en cero desplazado, se utiliza
CD(
b
,
d
) con frontera
f
bes la base de la representación y des la cantidad de cifras que soporta.
Cero desplazado
El rango que se puede representar es [-f, bd-f - 1]
Existen
bdrepresentaciones.
El cero NO tiene doble representación.
Si se desea almacenar una representación en CD en una celda de memoria se usa la base 2.
Si nes el tamaño de la celda de memoria, puedo almacenar 2n
representaciones de números enteros en el rango R es [-f, 2n-f-1].
Ejemplo. Una celda de un byte, puede representar un CD(b, d) con b= 2 y
d= 8 y R = [-128, 127].
Cero desplazado
Operaciones aritméticas en CD
Se pueden aplicar directamente sobre las
representaciones.
Se debe aplicar corrección para obtener la representación
correcta del resultado.
Sea
r
1la representación CD de
e
1,
r
2la representación de
Cero desplazado
Correcciones en suma en CD
Ejemplo 1.
Sistema CD(2, 4),
e
1=4 y
e
2=2, entonces
e
1+2=6.
r
1=1100 y
r
2=1010
Operación: 1100 + 1010 =
1
0110
Como
r
1+2= 0110 es la representación en CD de -2
Se debe corregir mediante resta de frontera, 10110 - 1000
Cero desplazado
Correcciones en suma en CD
Ejemplo 2.
Comparaciones (3)
El sistema de CD ofrece la posibilidad de no dividir simétricamente el espacio de representación.
Ejemplo. Un sistema CD(10 ,2) con frontera10 (o también llamado exceso 10) posee un rango [-10, 89]
Tanto las representaciones como los enteros representados se encuentran en el mismo orden lógico.
Comparar dos representaciones en CD es lo mismo que comparar los dos enteros representados.
En los otros sistemas SVA, C1 y C2, se requiere lógica adicional para comparar.
Es el sistema mas usado para representar valores cuya aplicación requiere mayormente comparaciones