Problema en la detección de desbordamiento en los números de 3 bits del complemento de 2 firmados

1

Según esta página , y otras similares, las reglas para detectar el desbordamiento cuando los siguientes números binarios firmados en forma de complemento a 2 son los siguientes:

  • Si la suma de dos números positivos produce un resultado negativo, la suma se ha desbordado.
  • Si la suma de dos números negativos produce un resultado positivo, la suma se ha desbordado.
  • De lo contrario, la suma no se ha desbordado.

Esto, sin embargo, parece no funcionar con números firmados de 3 bits. Por ejemplo, considere agregar -2 y -2, +2 es 010 y su complemento de 2 es entonces 110. Luego -2 + -2 = 110 + 110 = 1100. Cuando descartamos el acarreo, el signo del número es negativo, porque -4 no se puede representar como un número firmado de 3 bits. Estoy tratando de optimizar un diseño para una tarea escolar y, actualmente, lo mejor que puedo hacer es manejar el caso en el que llega a 100 (solo enciendo la marca de desbordamiento si esto sucede). Cualquier ayuda es muy apreciada.

    
pregunta rka

2 respuestas

0

No fui al sitio web para leer el texto de las reglas que mencionaste, pero creo que hay un error semántico en alguna parte. Primero, su afirmación de que -4 no puede representarse en el complemento de 2-s es incorrecta. El rango de los números de complemento de 3 bits 2 es de hecho -4 (100) ... 3 (011). En segundo lugar, la detección de desbordamiento se basa en la extensión del bit de acarreo. Para agregar números con el mismo signo, siempre que el bit de transporte extra / MSB sea el mismo que el MSB original, no se produjo un desbordamiento ... Por ejemplo,

-2 (110) -2 (110) -4 (1100) No overflow

-2 (110) -3 (101) -5 (1011) overflow

    
respondido por el Jotorious
0

Creo que su premisa es errónea, solo haga la adición así y deseche la ejecución (que en sí misma es en realidad la detección de desbordamiento en términos lógicos).

  | 1 1 0 = -2
+ | 1 1 0 = -2
------------
1 | 1 0 0 = -4
    
respondido por el vicatcu

Lea otras preguntas en las etiquetas