[MÚSICA] Hola. Continuamos con suma y resta. ¿Cuál es la idea aquí? Bueno, queremos sumar y resta, o queremos sumar números positivos y negativos, que al final es lo mismo, y queremos que la suma sea simple, no queremos tener que hacer cualquier arreglo o cualquier post-procesamiento. Quisiéramos que la suma sea lo más directa posible. Entonces, de eso se trata esta parte. Suma y resta. La suma de números positivos es igual en números con signo, números en complemento de 1 o números en complemento de 2, o números con signo y magnitud. Entonces, son todo lo mismo. Simplemente sumamos como you aprendimos a sumar. Sumamos estos dígitos, hay que considerar el carry, y finalmente terminamos con algo que funciona. Sin embargo, cuando queremos sumar números negativos o sumar números positivos con números negativos puede haber diferencias entre las tres representaciones que vimos. La resta se vuelve especialmente complicada cuando hablamos de representación de signo y magnitud, así que esa no la vamos a usar. Vamos a ver suma y resta en complemento de 1. Un caso en que es suma de positivos, luego hay un caso de suma de negativos, y hay dos casos más cuando hay sumas con distinto signo. En ese caso, las dos posibilidades son que el signo, que el positivo es mayor que el negativo en valor absoluto, o que el positivo es menor que el negativo en valor absoluto. Y vemos los cuatro casos. El primer caso, el más simple, ambos positivos. Segundo caso, vemos aquí que hay uno que es negativo y otro que es positivo. Simplemente sumamos, simplemente sumamos como lo haríamos normalmente, 0 más 0 es 0, 1 más 1 es 0, y pasa un carry aquí y luego finalmente este 1. Y este menos 5, y este más 2, nos dan un menos 3. Perfecto. Si no hay carry en el bit de signo, el resultado no cambia, no hay problema. Entonces, muy fácil sumar y restar números en complemento de 1 cuando no hay un carry en el bit de signo. ¿Qué pasa si hay un carry en el bit de signo? Y aquí hay dos ejemplos, entonces tendremos que sumarlo al resultado para obtener el valor correcto, y eso requiere un paso adicional. Entonces, aquí está el 5 y el menos 2, en complemento de 1, este es menos 2, ¿cierto? Sí, es menos 2 en complemento de 1, y aquí sumamos 1 más 1, 0, me da un 1 de carry que lo sumo aquí y me queda un 1. 1 más 1, 0. Me da un 1 de carry que sumo, y me da un, finalmente este es el resultado. Este resultado es más 3, debería ser más 3. Entonces, lo que hacemos es sumar este 1 al resultado final. Ese 1 de carry los sumamos al resultado final. Y en el caso de dos números negativos hacemos exactamente lo mismo, y al número de carry del bit de signo se suma al número final. No es tan complicado, es simplemente sumar y restar. Pero en caso de que haya un carry en bit de signo, hay que sumarlo al resultado final. Okay, veamos qué pasa en la suma y resta en complemento de 2. En este caso, si hay carry entonces hay que ignorarlo. Es más simple, porque no hay que, no hay que hacer como el complemento de 1 que hay que sumarle el carry al resultado final, no. En este caso, en complemento de 2, no hacemos nada. Entonces, la suma y resta de números con representación en complemento 2 es trivial, porque para sumar simplemente sumamos, y para restar simplemente sacamos el, obtenemos el número, el complemento de 2, o sea, lo volvemos negativo, y luego sumamos, y listo. Eso es todo. Por eso es que el complemento de 2 es lo más usado en circuitos digitales porque la resta es trivial. Y aquí hay un ejemplo. Más 5, y menos 2. El menos 2, en complemento de 2, si el 2 es 0010, el menos 2 va a ser 1101, y a eso le sumamos 1, por lo tanto me queda 1110, que es esto. Perfecto. Sumamos. 1 más 0, 1. 1 más 0, 1. 1 más 1, 0. Me reservo el 1. 1 más 1, 0. Me reservo el 1. Este 1 lo ignoro, y este es mi resultado. El resultado es más 3. Listo. No hay que hacer nada más. Lo mismo aquí. Si tenemos menos 5 y menos 2, llegamos al resultado menos 7. Listo. No hay que hacer nada más. ¿Cómo hacemos un bloque que sume? Bueno, podemos usar un sumador, un sumador completo, y ese sumador completo podemos simplemente meterle uno de los operandos aquí, este siempre lo vamos a sumar. Y el otro operando, este es el otro operando, podemos introducirlo como positivo o como negativo. Cuando lo introducimos como positivo, que va directo ahi, o sea, en el caso de que queramos sumar. Si queremos sumar, ponemos un 0 aquí. Un 0 aquí va a dejarme pasar el operando como positivo. Un 0 aquí me mete un carry-in de 0. Por lo tanto, estoy sumando dos números y listo. Si quiero restarle este número, aplico un 1 aquí. Al aplicar un 1 aquí, todos los OR exclusivo tendrán un 1, por lo tanto los OR exclusivos van a complementar mi entrada. Y lo que entra aquí es el complemento de 1 de entrada Y. Para convertirlo en el complemento de 2, habría que sumarle 1. Bueno, le sumamos uno a través del carry. Listo, ahí está. Ese es mi bloque sumador/restador. Perfecto. No hay que hacer nada más. Excelente. ¿Qué aprendimos hoy? Aprendimos cómo es la suma y resta en complemento de 1, aprendimos cómo es la suma y resta en complemento de 2, vimos que es trivial, que es directa, es simplemente sumar los números positivos o negativos, y vimos cómo hacer un bloque que sume y que reste. Muchas gracias.