Estoy viendo algunos grandes conferencias de David Malan (aquí) que se van a través de binario. Él habló acerca de signed/unsigned, 1 es cumplido, y el complemento a 2 de las representaciones. Hubo además un hecho de 4 + (-3), que se alinearon así:

0100
1101 (flip 0011 to 1100, then add "1" to the end)
----
0001

Pero agitaba sus manos mágicas y tiró la última de llevar. Hice un poco de wikipedia investigación bits no se, puede que alguien me explique por qué esa particular de llevar (en el 8 ->16 columnas) se ha caído, pero él mantuvo el un poco antes de ella?

Gracias!

  • Nota, no se trata de «flip, a continuación, añadir 1 a la final». Es «voltear los trozos y agregar 1». Es una distinción importante. De la manera que usted escribió esto implica que usted acaba de establecer el «fin» bit a 1, pero eso está mal. Estás agregando 1, por lo que lleva y tal, se aplicarían. Así -4 sería 0100 volteado a 1011, a continuación, añadir 1 para obtener 1100.
  • Es bueno saberlo, gracias. Incluso me voy a confesar que cuando escuché por primera vez «darle la vuelta», el ejemplo fue de 3 (0011) y se convierte en (1100) que se ve como como un L-R flip que «cada bit está encendido». Que me tenía por un tiempo…
InformationsquelleAutor Alex Mcp | 2009-11-02

10 Comentarios

  1. 10

    Los últimos llevar se cayó porque no cabe en el espacio de destino. Sería el quinto bit.

    Si había llevado a cabo la misma suma, pero con, por ejemplo, 8 bits de almacenamiento, se hubiera visto como esta:

    00000100
    11111101
    --------
    00000001
    

    En esta situación también queremos ser pegado con un «no utilizado» para llevar.

    Tenemos que tratar lleva a esta manera de hacer, además de con dos que se complementan el trabajo correctamente, pero todo eso es bueno, porque esta es la manera más fácil de tratar lleva cuando usted tiene un almacenamiento limitado. De todos modos, obtenemos el resultado correcto, a la derecha 🙂


    x86-procesadores de almacenar un adicional de llevar en la maleta de la bandera (CF), que es posible probar con ciertas instrucciones.

  2. 4

    Una carga no es la misma como un desbordamiento

    En el ejemplo, usted tiene derecho a llevar a cabo de la MSB. Por definición, esto llevan termina en el piso. (Si hay algún lugar para ir, entonces no habría estado fuera de la MSB.)

    Pero la adición de dos números con signos diferentes que no se desborde. Un desbordamiento sólo puede ocurrir cuando dos números con el mismo signo de producir un resultado con un signo diferente.

    • Interesante. Siempre he pensado que el desbordamiento se produce cuando el resultado de una operación requiere requiere más bits de lo previsto, lo que resulta en mayores de bits de ser desechado. La entrada de la wikipedia parece estar de acuerdo con esto (en.wikipedia.org/wiki/Arithmetic_overflow).
    • Algunos lleva son se desborda, algunos no lo son. Es complicado.
  3. 3

    Si extiende la mano izquierda por la adición de más dígitos de las posiciones, verás que el llevar los rollos en un número infinito de posiciones de bits hacia la izquierda, así que usted nunca realmente llegar a un acarreo de 1. Así que la respuesta es positiva.

     ...000100
    +...111101
    ----------
    ....000001
    
  4. 2

    En algún momento usted tiene que fijar el número de bits para representar los números. Él escogió a 4 bits. Cualquier llevan a la 5ª poco se pierde. Pero eso está bien porque él decidió representar el número en sólo 4 bits.

    Si él decidió usar 5 bits para representar los números a los que habría conseguido el mismo resultado.

  5. 2

    Que es la belleza de ella… Su resultado será el mismo tamaño que los términos que se están agregando. Así que el quinto bit es expulsado

    En complemento a 2 utilice el llevar a bit para indicar si hubo un desbordamiento en la última operación.

    Usted debe mirar en la ÚLTIMA dos llevan bits para ver si hay desbordamiento. En tu ejemplo, los dos últimos llevar bits fueron 11 lo que significa que no hubo desbordamiento.

    Si los dos últimos llevar bits son 11 o 00 entonces no hay desbordamiento. Si los dos últimos llevar bits son 10 o 01 luego hubo desbordamiento. Es por eso que a veces se preocupaba por la llevan a poco y otras veces lo ignoró.

    La primera fila de abajo es la de llevar a la fila. Más a la izquierda de los bits en esta fila se utilizan para determinar si hubo desbordamiento.

    1100
     0100
     1101
     ----
     0001
    
  6. 1

    Parece que sólo está utilizando 4 bits, por lo que no hay 16 de la columna.

    Si se utiliza más de 4 bits, a continuación, el -3 representación sería diferente, y el llevar de las matemáticas todavía serían arrojados fuera de la final. Por ejemplo, con 6 bits tendrías:

     000100
     111101
     ------
    1000001
    

    y desde el llevar es fuera de los bits de rango de la representación que se ha ido, y usted sólo tiene 000001

  7. 1

    Considerar 25 + 15:

    5+5 = 10, podemos mantener el 0 y dejar que el 1 ir a las decenas de columna. Entonces es 2 + 1 (+ 1) = 4. Por lo tanto el resultado es 40 🙂

    Es la misma cosa con los binarios. 0 + 1 = 1, 0 + 0 = 0, 1 + 1 = 10 => enviar la 1 a la 8-columna, 0 + 1 ( + 1 ) = 10 => enviar la 1 a la siguiente columna – Aquí está el desbordamiento y eso que acaba de lanzar el 1 de distancia.

    Esta es la razón por complemento a 2 es tan grande. Permite añadir /restar al igual que lo hacemos con base 10, debido a que usted (ab)uso el hecho de que el signo bits es el MSB, que va a la cascada de las operaciones de todo el camino a desbordamientos, cuando nessecary.

    Esperanza yo me he hecho entender. Bastante duro para explan este cuando el inglés no es lengua nativa 🙂

  8. 1

    Cuando la realización de complemento a 2, además, la única vez que un llevar indica que hay un problema es cuando hay una condición de desbordamiento – eso no puede suceder si los 2 operandos tienen un signo diferente.

    Si tienen el mismo signo, entonces la condición de desbordamiento es cuando el bit de signo de los cambios a partir de los 2 operandos, es decir, hay un acarreo de en el bit más significativo.

    Si me acuerdo de mi equipo de arquitectura learnin’ esto se detecta con frecuencia en el nivel de hardware por una bandera que se establece cuando la llevan en el bit más significativo es diferentes que el llevar a cabo el bit más significativo. Que no es el caso en el ejemplo (hay un acarreo en el msb, así como fuera de la msb).

    Una forma sencilla de verlo es pensar como «el signo no cambia». Si la llevan en el msb es diferente que el de llevar a cabo, a continuación, la señal tiene incorrectamente cambiado.

    • «la única vez que un llevar indica que hay un problema es cuando hay una condición de desbordamiento». Yo no creo que esto sea correcto (cuando la distinción entre DESBORDAMIENTO y LLEVAN banderas). Es utilizado para unsigned matemáticas, de Desbordamiento se utiliza para firma de matemáticas. En realidad son diferentes bits en un 2 del elogio de la máquina, no de la misma bits volver a utilizar.
  9. 0

    De la maleta fue retirado debido a que no había nada que se pudiera hacer con ella. Si es importante para el resultado, significa que la operación se desbordó el rango de valores que pueden ser almacenados en el resultado. En ensamblador, por lo general hay una instrucción que puede probar para llevar más allá del final del resultado, y puede explícitamente lidiar con ella allí – por ejemplo, la realización en la siguiente parte superior de un múltiplo valor de precisión.

  10. -1

    Porque estás hablando de 4 bits representaciones. Es unussual en comparación con una máquina real, pero si tuviéramos que dar por sentado que un equipo tiene 4 bits en cada byte por un momento, entonces tenemos las siguientes propiedades: un byte se ajusta a 15 a -15. Nada fuera de ese rango no puede ser almacenado. Además, ¿qué haría usted con un extra de 5 de poco más el bit de signo de todos modos?

    Ahora, dado que, podemos ver desde lo cotidiano de matemáticas que 4 + (-3) = 1, que es exactamente lo que tenemos.

Dejar respuesta

Please enter your comment!
Please enter your name here