[2018][Febrero][Problema2]

Re: [2018][Febrero][Problema2]

de Gustavo Brown -
Número de respuestas: 0

No hay ceros porque la expresión -entera en 

ROM[1<<31|codExp<<23|frac] = (-entera + overflow) & 0x1FFFF;

aplica el complemento a 2 del número con lo cual rellena (en binario) a la izquierda todo con 1.

De hecho la sentencia igualmente está mal y deberia decir

ROM[1<<31|codExp<<23|frac] = (-entera & 0xFFFF ) | overflow;
Es decir, aplicar la máscara a solamente a -entera y luego agregarle el bit de overflow porque sino el número cuando es negativo (y no tiene overflow) igualmente queda marcado como con overflow. 

Saludos,
  Gustavo