BigBoss_ escribió:¿Cómo se haría esto por ejemplo?
Determine, en el sistema decimal de numeración, la cantidad 111111001 representada utilizando el formato
de coma flotante 1-4-4 (signo-exponente-mantisa). Asimismo, determine el rango de representación de este
formato.
Sean las siguientes cantidades, expresadas en el sistema decimal de numeración: A = 5, B = -7.5, C= 3.25 y
D = -30. Se pide:
b) Represente A, B, C y D en coma flotante con un bit para el signo, cuatro para el exponente y cuatro
para la mantisa.
c) Obtenga el rango del formato detallado en b).
Hace como 4 años que no hago una conversión, pero a ver si me acuerdo:
a) Esto sería:
Signo: negativo
Exponente: 1111
Mantisa: 1001
Creo que va con trampa, ya que creo recordar que si llevaba el exponente todo a unos o todo a ceros eran números especiales. Voy a ver si lo encuentro....
Vale, signo negativo, exponente todo a unos y mantisa distinta de 0 es SNAN -> Operación no-válida
Rango debe ir de 111101111 a 011101111, es decir:
Mínimo:
Signo: negativo
Exponente: 1110 -> exp - (2^(n-1)-1) = 14 - 7 = 7
Mantisa: 1111
Luego tenemos que -1,1111 * 2^7 = -11111000 = -248 (revisa la cuenta pero creo que está bien)
Máximo:
Es igual que el mínimo pero en positivo, luego 248
Vamos, que el rango es de -248 a 248
Edito: Me acabo de acordar que había que reservar un valor para el 0, lo que no me acuerdo es si era el negativo o el positivo, con lo que tienes que quedaría o de -247 a 248 (que es lo que me suena) o de -248 a 247 (que me suena menos).
Edito 2: cambio de idea, creo que se reservaba +0 y -0, con lo que quedaría de -247 a 247. Esto ya me suena más.
b)
A) 5 = 101 = 1,01 * 2^2
Signo: 0
Exponente: 2 + 7 = 9 = 1001
Mantisa: 0100
Luego 5 = 010010100
B) -7,5 = 7 + 0.5 = -111 - 0,1 = -111,1 = -1,111 * 2^2
Signo: 1
Exponente: 2 + 7 = 9 = 1001
Mantisa: 1110
Luego -7,5 = 110011110
C) 3,25 = 11 + 0,01 = 11,01 = 1,101 * 2^1
Signo: 0
Exponente: 1 + 7 = 8 = 0100
Mantisa: 1010
Luego 3,25 = 001001010
D) -30 = -11110 = -1,1110 * 2^4
Signo: 1
Exponente: 4 + 7 = 11 = 1011
Mantisa: 1110
Luego -30 = 110111110
c) El rango es igual que en el primero (es también 1-4-4), ¿no?
Como te he dicho, hace muchisimo que no hago de esto, pero vamos, creo que está mas o menos bien