Aritmetica de enteros y flotante
Aritmética de Enteros y
Flotantes
2013
Transversal de Programación Básica
Proyecto Curricular de Ingeniería de Sistemas
Aritmética de Enteros y Flotantes 2
1.
Introduccion
La aritmética de enteros es aritmética modular en complemento a dos, es decir, si un valor excede el rango de su tipo es reducido a su módulo. Por tanto, la aritmética de
enteros nunca produce desbordamientos ni subdesbordamientos. La división entre
enteros trunca el resto con la siguiente regla: (x/y)*y + x%y == x. La división por cero o
el resto por cero no son válidos.
La aritmética de caracteres es aritmética de enteros ya que un char es convertido
implícitamente a int.
Java usa el estándar IEEE 754‐1985 tanto para la representación como para la
aritmética de números en punto flotante. De acuerdo con él, podemos producir
desbordamientos hacia el infinito o subdesbordamientos a cero. También se puede
representar los resultados de expresiones no válidas, NaN, como la división por cero.
2.Representación de Números Negativos
Existen diversos sistemas para representar números negativos:
a. SIGNO MAGNITUD.
En este sistema el bit más significativo es el bit de signo (0 es +, 1 es –) y el resto de
los bits corresponden a la magnitud.
Por ejemplo:
510 = 0000 0101
‐510 = 1000 0101
La suma en Signo Magnitud se efectúa sobre la magnitud de los sumandos que deben ser de igual signo. El signo del resultado es el signo de los dos sumandos.
0 0101 (510) 1 1010 (‐1010)
0 0011 (310) 1 0011 (‐310)
______ ______
0 1000 (810) 1 1101 (‐1310)
Aritmética de Enteros y Flotantes 3
¿Cuándo ocurre un desbordamiento u overflow?
Cuando hay un acarreo del bit más significativo de la magnitud.
0 1011 (1110)
0 1000 (810)
______
0 10011 desborde
Esta representación presenta varias limitaciones. Una de ellas es que la suma y la
resta requieren tener en cuenta tanto los signos de los números como sus
magnitudes relativas para llevar a cabo la operación en cuestión. Otra limitación es que hay dos representaciones del número cero.
b.
COMPLEMENTO A UNO
Los números positivos se representan igual que en Signo Magnitud. Para obtener un
número negativo se toma el positivo correspondiente y se niega cada uno de sus bits
inclusive el bit de signo.
Por ejemplo:
510 = 0000 0101
‐510 = 1111 1010
La operación para obtener el complemento a uno de un número es equivalente a
n
restar el valor absoluto del número de 2 ‐1.
Para sumar dos números en complemento a uno simplemente consiste en sumar
todos los dígitos de los números y cuando hay un acarreo desde el bit más
significativo entonces se debe sumar uno (1) al resultado.
0 0111 (710) 1 1110 (‐110)
0 0101 (510) 0 0010 (210) ______ _______
0 1100 (1210) 10 0000 (010) error
1
_______
0 0001 (110)
Aritmética de Enteros y Flotantes 4
c. COMPLEMENTO A DOS.
Los números positivos se representan igual que en Signo‐Magnitud. Para obtener un
n
número negativo, se substrae su valor absoluto de 2 . Una forma sencilla consiste en
tomar el positivo correspondiente y cada 0 se sustituye por 1 y cada 1 por 0, y
posteriormente se le suma 1 al resultado. En esta suma si hay un acarreo final se
desecha el bit.
Por ejemplo:
310 = 0011
‐310 = 1101
Esta representación utiliza el bit más significativo (izquierda) como bit de signo, ...
Regístrate para leer el documento completo.