Saltar al contenido principal
LibreTexts Español

2.4: Resta binaria

  • Page ID
    154498
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Podemos restar un número binario de otro usando las técnicas estándar adaptadas para números decimales (resta de cada par de bits, de derecha a izquierda, “préstamo” según sea necesario de bits a la izquierda). No obstante, si podemos aprovechar la ya familiar (y más fácil) técnica de suma binaria para restar, eso sería mejor. Como acabamos de aprender, podemos representar números binarios negativos usando el método del “complemento de dos” y un bit de peso posicional negativo. Aquí, usaremos esos números binarios negativos para restar a través de la suma. Aquí hay un problema de muestra:

    333.PNG

    Si todo lo que necesitamos hacer es representar siete y cinco negativos en forma binaria (complementada con dos), todo lo que necesitamos son tres bits más el bit de peso negativo:

    09.PNG

    Ahora, sumémoslos juntos:

    999.PNG

    Como ya hemos definido nuestro campo de bit numérico como tres bits más el bit de peso negativo, el quinto bit en la respuesta (1) será descartado para darnos un resultado de 0010 2, o dos positivos, que es la respuesta correcta.

    Otra forma de entender por qué descartamos ese bit extra es recordar que el bit más a la izquierda del número inferior posee un peso negativo, en este caso igual a ocho negativo. Cuando sumamos estos dos números binarios juntos, lo que realmente estamos haciendo con los MSB es restar el MSB del número inferior del MSB del número superior. En la resta, uno nunca “lleva” un dígito o un bit al siguiente peso posicional izquierdo.

    Probemos otro ejemplo, esta vez con números mayores. Si queremos sumar -25 10 a 18 10, primero debemos decidir qué tan grande debe ser nuestro campo de bits binarios. Para representar el número más grande (valor absoluto) en nuestro problema, que es veinticinco, necesitamos al menos cinco bits, más un sexto bit para el bit de peso negativo. Empecemos por representar veinticinco positivos, luego encontrar el complemento de los dos y ponerlo todo junto en una numeración:

    322.PNG

    Esencialmente, estamos representando veinticinco negativos usando el bit de peso negativo (sexto) con un valor de treinta y dos negativos, más siete positivos (binario 111 2).

    Ahora, representemos dieciocho positivos en forma binaria, mostrando los seis bits:

    7999.PNG

    Como no había bits “extra” a la izquierda, no hay bits para descartar. El bit más a la izquierda en la respuesta es un 1, lo que significa que la respuesta es negativa, en forma de complemento de dos, como debería ser. Al convertir la respuesta a forma decimal sumando todos los bits por sus respectivos valores de peso, obtenemos:

    vb.PNG

    Efectivamente -7 10 es la suma propiamente dicha de -25 10 y 18 10.


    This page titled 2.4: Resta binaria is shared under a GNU Free Documentation License 1.3 license and was authored, remixed, and/or curated by Tony R. Kuphaldt (All About Circuits) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.