You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

1 Días
17 Hrs
26 Min
41 Seg

Suma y resta de binarios

5/17
Resources

The addition and subtraction of binary numbers are executed by applying a series of rules, which give us the different results of operating the two numbers that compose this system (0 and 1).

Addition of binary numbers

To add binary numbers we have to follow the rules shown in the following table:

| Rules | Results | | | | | | | | 0 + 0 = | | 0 | | | 0 + 1 | | 1 + 0 = | 1 | | | 1 + 1 = | | | 0 and carry 1 | | | 1

Once these rules are clear, we proceed in the same way as when adding numbers in the decimal system, that is, we start to operate the numbers from right to left. Example:

suma-de-binarios.png

The result of adding the binary numbers 110 and 001 is 111. This is because the rules tell us that 0 +1 = 1 and that 1 + 0 = 1.

Subtraction of binary numbers

To subtract binary numbers you have to follow the rules shown in the following table:

| Rules | Results | | | | | | | 0 - 0 = | | 0 | | | 0 - 1 = | | | 1 and carry 1 | | | 1 - 0 = | | | 1 - 1 = | | | 0 | | | 1 - 1 = | | 0 | | | 1 - 1 = | 0 | | 1 = | 1 = | 1 = | 1 = | 1.

In the binary number subtraction, the subtraction 0 -1 is solved in the same way as it is solved in the decimal system. This means taking one unit of the following decimal: 0 - 1 = 1 and carrying 1.

Tell us in the comments what differences and similarities you found between adding and subtracting decimal numbers and binary numbers!

Course contribution created by: Silfredo Ibarra.

Contributions 469

Questions 83

Sort by:

Want to see more contributions, questions and answers from the community?

⚡👉 Mis ejercicios

La mitad de las restas me daban bien y la mitad me daba un número inclusive mayor que los números que estaban restando. Por si hay alguien más con este problema: mi error era que cuando se acarreaba un 1 por encima de un 0 estaba restando 1 - 0 cuando el orden correcto es 0 - 1.
Volví a revisar el video y la profesora señala el orden de esa resta de forma equivocada, primero señala el 1 acarreado y luego le resta el número de abajo (lo que en el ejemplo que ella da no cambia nada porque es 1 - 1).
Tal vez con este dibujito con la resta de 100(4) - 1(1) me explique mejor:

Aceptando el reto de la profesora!


El resultado del número 1001 a decimal es 9

1 * 2 = 1 * 1 = 1
0 * 2 = 2 * 0 = 0
0 * 2 = 4 * 0 = 0
1 * 2 = 8 * 1 = 8
Resultado = 9

Práctica de algunos ejercicios de suma de binarios

+1110 = +14
+1111 = +15
= 11101 = 29

+101100000 = +352
+110010000 = +400
= 1011110000 = 752

Práctica de algunos ejercicios de resta de binarios

10100 = 20
- 1111 = - 15
= 101 = 5

111110100 = 500
- 1111100 = - 124
= 101111000 = 376

🌈 ¿Cómo podemos realizar las operaciones básicas con números binarias? 🌈


✨Suma✨
· Números iguales = 0
0 + 0 = 0
1 + 1 = 0 ↪️ El resultado es 0 pero debes agregar un 1 adicional

· Números diferentes = 1
1 + 0 = 1
0 + 1 = 1

Ejemplos

  1. 1 1 0 + 0 0 1 = 1 1 1
  1. 1 1 0 + 0 1 1 = 🌞1 🌤0 🌥0 🌧1
    🌧 1 + 0 = 1
    🌥 1 + 1 = 0 (llevo 1)
    🌤 1 + 1 = 0
    🌞 agregamos el 1


✨Resta✨
· Números iguales = 0
0 - 0 = 0
1 - 1 = 0
· Números diferentes = 1
1 - 0 = 1
0 - 1 = 1 ↪️ El resultado es 1 y debemos acarrerar un 1

Ejemplo

1 0 1 - 0 1 1 = 🌤0 🌥1 🌧0
🌧 1 - 1 = 0
🌥 0 - 1 = 1 (llevo 1)
🌤 1 - 1 = 0 y 0 - 0 = 0

Aquí están los ejercicios, hice 10 de cada uno, luego los cambié a decimal para comprobar los resultados 😄.







En la resta binaria al acarreo (0 - 1) se lo suele llamar BORROW

¡Algo de humor!

Suma y resta de binarios.

  • Suma
    1. La suma de 0 + 0 es 0
    2. La suma de 1 + 0 es 1
    3. La suma de 0 + 1 es 1
    4. La suma de 1 + 1 es 10, llevando 1 al numero a la izquierda inmediata.
  • Resta
    1. La resta de 0 - 0 es 0
    2. La resta de 1 - 1 es 0
    3. La resta de 1 - 0 es 1
    4. La resta de (1)0 - 1 es 1

me tomó un tiempo largo pero creé un programa para que sume dos numeros binaros y otro para que los reste.

Suma de numeros binarios

import java.util.*;

class Main {
  public static void main(String[] args) {
    
    System.out.println("Enter a binary number: ");
    Scanner input = new Scanner(System.in);
    int binary = input.nextInt();
    System.out.println("You entered: " + binary);

    int binary1 = binary;
    int binary1_2 = binary;
    int i = 0;
    while(binary1 > 0){
      int remainder = binary1 % 10;
      binary1 = binary1 / 10;
      i = i + 1;
    }
    
    int[] myArray = new int[i];
    int j = myArray.length;
    int[] arrayM = new int[i];
    int k = 0;
    while(binary1_2 > 0 && k<i){
      int remainder1_2 = binary1_2 % 10;
      binary1_2 = binary1_2 / 10;
      
      myArray[j-1] = remainder1_2;
      int p = (int) Math.pow(2, k);

      int m = remainder1_2 * p;

      arrayM[j-1] = m;
      
      k=k+1;
      j=j-1;
    }

    int decimal = 0;
    for(int l=0; l<arrayM.length; l++){
      decimal = decimal + arrayM[l];
    }
    
  

  
    System.out.println("\n Enter another binary number: ");
    int binary2 = input.nextInt();
    System.out.println("You entered: " + binary2);

    int binary2_1 = binary2;
    int binary2_2 = binary2;
    int i2 = 0;
    while(binary2_1 > 0){
      int remainder2 = binary2_1 % 10;
      binary2_1 = binary2_1 / 10;
      i2 = i2 + 1;
    }
    
    int[] myArray2 = new int[i2];
    int j2 = myArray2.length;
    int[] arrayM2 = new int[i2];
    int k2 = 0;
    while(binary2_2 > 0 && k2<i2){
      int remainder2_1 = binary2_2 % 10;
      binary2_2 = binary2_2 / 10;
      
      myArray2[j2-1] = remainder2_1;
      int p2 = (int) Math.pow(2, k2);

      int m2 = remainder2_1 * p2;
      

      arrayM2[j2-1] = m2;
      
      k2++;
      j2--;
    }

    int decimal2 = 0;
    for(int l2=0; l2<arrayM2.length; l2++){
      decimal2 = decimal2 + arrayM2[l2];
    }



 
    int decimal_sum = decimal + decimal2;

     int dividend = decimal_sum;
    int dividend2 = decimal_sum;
    
    int i3 = 0;
    do{
      
      int quotient = dividend / 2;
      
      dividend = quotient;

      i3 ++;
      
    }while(dividend>=1);
    
    int[] myArray3 = new int[i3];
    int j3 = myArray3.length;
    do{
      
      int quotient2 = dividend2 / 2;
      int remainder3 = dividend2 % 2;
      dividend2 = quotient2;

      myArray3[j3-1] = remainder3;
      
      j3--;
      
    }while(dividend2>=1 && j3 > 0);

    int r = 0;
    int binary_sum = 0;
    for(int k3 =0 ; k3<myArray3.length ; k3++){
      r = binary_sum * 10;
      binary_sum = r + myArray3[k3];
    }
    
    System.out.println("The sum of " + binary + " and " + binary2 + " is: " + binary_sum);
  }
} 

resta de numeros binarios

import java.util.*;

class Main {
  public static void main(String[] args) {
    
    System.out.println("Enter a binary number: ");
    Scanner input = new Scanner(System.in);
    int binary = input.nextInt();
    System.out.println("You entered: " + binary);

    int binary1 = binary;
    int binary1_2 = binary;
    int i = 0;
    while(binary1 > 0){
      int remainder = binary1 % 10;
      binary1 = binary1 / 10;
      i = i + 1;
    }
    
    int[] myArray = new int[i];
    int j = myArray.length;
    int[] arrayM = new int[i];
    int k = 0;
    while(binary1_2 > 0 && k<i){
      int remainder1_2 = binary1_2 % 10;
      binary1_2 = binary1_2 / 10;
      
      myArray[j-1] = remainder1_2;
      int p = (int) Math.pow(2, k);

      int m = remainder1_2 * p;

      arrayM[j-1] = m;
      
      k=k+1;
      j=j-1;
    }

    int decimal = 0;
    for(int l=0; l<arrayM.length; l++){
      decimal = decimal + arrayM[l];
    }
    
  

  
    System.out.println("\n Enter another binary number: ");
    int binary2 = input.nextInt();
    System.out.println("You entered: " + binary2);

    int binary2_1 = binary2;
    int binary2_2 = binary2;
    int i2 = 0;
    while(binary2_1 > 0){
      int remainder2 = binary2_1 % 10;
      binary2_1 = binary2_1 / 10;
      i2 = i2 + 1;
    }
    
    int[] myArray2 = new int[i2];
    int j2 = myArray2.length;
    int[] arrayM2 = new int[i2];
    int k2 = 0;
    while(binary2_2 > 0 && k2<i2){
      int remainder2_1 = binary2_2 % 10;
      binary2_2 = binary2_2 / 10;
      
      myArray2[j2-1] = remainder2_1;
      int p2 = (int) Math.pow(2, k2);

      int m2 = remainder2_1 * p2;
      

      arrayM2[j2-1] = m2;
      
      k2++;
      j2--;
    }

    int decimal2 = 0;
    for(int l2=0; l2<arrayM2.length; l2++){
      decimal2 = decimal2 + arrayM2[l2];
    }



    
    int decimal_sub = decimal - decimal2;

     int dividend = decimal_sub;
    int dividend2 = decimal_sub;
    
    int i3 = 0;
    do{
      
      int quotient = dividend / 2;
      
      dividend = quotient;

      i3 ++;
      
    }while(dividend>=1);
    
    int[] myArray3 = new int[i3];
    int j3 = myArray3.length;
    do{
      
      int quotient2 = dividend2 / 2;
      int remainder3 = dividend2 % 2;
      dividend2 = quotient2;

      myArray3[j3-1] = remainder3;
      
      j3--;
      
    }while(dividend2>=1 && j3 > 0);

    int r = 0;
    int binary_sub = 0;
    for(int k3 =0 ; k3<myArray3.length ; k3++){
      r = binary_sub * 10;
      binary_sub = r + myArray3[k3];
    }
    
    System.out.println("The substraction of " + binary + " and " + binary2 + " is: " + binary_sub);
  }
}

Porq el la resta cuando se lleva 1 este no se pone en la resta y si en la suma ?

Sumas
1001001+0011001=1100010
10001001+0001101=1010010
1010100+0111010=10001110
Restas
11101-01001=10100
100101-011010=101011
111010-100101=10101

Hice varios ejercicios y ok, pero a la hora de pasarlos a decimales estaban mal.
En esta 👉 pagina encontré una calculadora, tiene ejemplos y ahí descubrí mi error con la resta.

1001 --> 9
0010 --> 2

Con esta calculadora verificaba los resultados 😃 https://miniwebtool.com/es/binary-calculator/

Aqui les dejo un ejemplo es prácticamente lo mismo pero recordando cada informacion que dejo la maestra.
Un ejemplo mas simplificado y detallado.

Es el numero 9! (●’◡’●)

1 = 1
0 = 0
0 =0
1 = 8
r/= 9

En el caso de las restas por curiosidad, quise, utilizar los mismos números pero los invertí colocando el numero mayor en la parte inferior, notando que se puede realizar la operación pero obviamente da un numero mayor. Tomen en cuenta colocar el mayor siempre al arriba no vaya a ser que por un afán hagan la operación mal

En el ejercicio de suma de binario 1001, convertido a decimal es 9.

Sìper, y entonces al convertir los elementos de esa suma a decimal me denera exactamente lo mismo. 6+3=9

En el ejemplo de la suma =
110 = 6 y 011 = 3 por lo tanto la suma 1001 = 9

Fue complicado hasta que entendí una regla que no se explico… esta regla trata de que cuando en una resta “si se acarrea un (1) al numero izquierdo consecutivo y este es un (0) entonces el (0) se resta al numero acarreado, creando así otro acarreo” esta reglas solamente se aplica en la resta de binarios… algunos en la comunidad lo dijeron pero así yo lo entendí mejor… espero que ayude.

Adjunto un ejemplo

La potencia elevada a exponente 0 es igual a 1

# Suma y resta de binarios Para sumar números binarios | Reglas: * | 0 + 0 = | 0 | * | 0 + 1 | 1 | * | 1 + 0 = | 1 | * | 1 + 1 = | 0 y acarreo 1 | Para rectar números binarios | Reglas: * | 0 - 0 = | 0 | * | 1 - 0 = | 0 | * | 1 - 1 = | 0 | * | 0 - 1 = | 1 y acarreo 1 | Ejemplo: SUMA: 100011 + 1001 El resultado de sumar los números binarios es **101000** RESTA: 101000 - 1001 El resultado de rectar esos números binarios es **100011** Saludos, Maria CRM
Comparto mis apuntes y mis ejercicios. Aprovecho para mencionar que para la resta me constó trabajo, entender el acarreo, pero comparto el video que me ayudo mucho → <https://www.youtube.com/watch?v=1uwRKGxkCo0&t=92s> ![](https://static.platzi.com/media/user_upload/%F0%9F%A7%A0%20Curso%20De%20Pensamiento%20Lo%CC%81gico_%20Algoritmos%20Y%20Diagramas%20De%20Flujo-66-6dc86f1f-a978-4e68-a733-43b6c3647426.jpg) ¡Saludos!

Al igual que con la lección anterior realicé un programa en Python para sumar 2 números binarios

También lo probé en Replit 👌

Cualquier aporte para mejorar el código es bienvenido 🙌🏻

Estube como 2 horas batallando con la resta de 2 numeros inventados pensando que hacia algo mal porque al convertirlos en decimal no cuadraba cuando quien tubo la culpa todo este tiempo fue la explicacion de la maestra cuando se acarrea 1 no se hace la operacion de arriba hacia abajo sino de abajo hacia arriba tuve que ver otro video en youtube para darme cuanta como hacer correctamente las operaciones

https://youtube.com/playlist?list=PLeySRPnY35dGpDpTnEM86nJAEKVP8LD6v&si=YlajothuJEPNdaNu

Aqui proponen una manera mas sencilla de realizar las operaciones y la conversion

Detalle a tener encuenta

Si usted se puso a practicar va a notar que sus resultados son mu diferentes (siguiendo el ejemplo de la profe) a que cuando usa una calculadora binaria y es por lo siguiente:

Ejemplo

¡Por supuesto! Vamos a realizar la resta de los números binarios (101000) y (11001) paso a paso.

Paso 1: Alinear los números por la derecha

  101000 (minuendo)
- 011001 (sustraendo, añadimos un 0 a la izquierda para alinearlos)

Paso 2: Realizar la resta binaria columna por columna de derecha a izquierda

Empezamos con el dígito más a la derecha:

  • Columna 1 (unidad): (0 - 1)
    No podemos restar 1 de 0 en binario. Así que, tomamos prestado 1 del siguiente dígito a la izquierda.
    (10 - 1 = 1)

  • Columna 2: (0 - 0 = 0)
    Pero como tomamos prestado 1 del dígito en esta columna para la columna anterior, reducimos este dígito en 1. Así que, (0 - 1 = -1). Nuevamente, tomamos prestado del siguiente dígito a la izquierda.
    (10 - 1 = 1)

  • Columna 3: (0 - 0 = 0)
    Pero como tomamos prestado 1 del dígito en esta columna para la columna anterior, reducimos este dígito en 1. Así que, (0 - 1 = -1). Nuevamente, tomamos prestado del siguiente dígito a la izquierda.
    (10 - 1 = 1)

  • Columna 4: (1 - 1 = 0)
    Pero como tomamos prestado 1 del dígito en esta columna para la columna anterior, reducimos este dígito en 1. Así que, (0 - 1 = -1). Nuevamente, tomamos prestado del siguiente dígito a la izquierda.
    (10 - 1 = 1)

  • Columna 5: (0 - 1)
    No podemos restar 1 de 0 en binario. Así que, tomamos prestado 1 del siguiente dígito a la izquierda.
    (10 - 1 = 1)

  • Columna 6: (1 - 0 = 1)

Paso 3: Escribir el resultado

El resultado, escrito de izquierda a derecha, es (1111).

¡Y eso es todo! Es similar a la resta en el sistema decimal, pero con números binarios solo tenemos 0 y 1.

Si no entendiste te dejo este video:

https://www.youtube.com/clip/Ugkxd5guiVrY5H8nK_MZAV_CcJTEbh8cvxKN

Mis ejercicios

Y ahora aquí va el como

No es muy explicita la forma de la resta y el acarreo no esta correctamente explicado en la misma, por ejemplo restas 65-51 puede darte 1010110 si no se explica bien la forma de acarrear el 1 cuando te encuentras 0-1. mucho cuidado con eso. revisen otros metodos y practiquen hasta que el metodo lo tengan depurado.

![](

Reto llevar 1001 a decimal:
1x(2"0)=1
0x(2"1)=0
0x(2"2)=0
1x(2"3)=8
1+8 = 9

⚡👉 Mis ejercicios

Aquí les dejo mi resumen:

def sumar_binarios(binario1, binario2):
    # Convertir los binarios a enteros
    entero1 = int(binario1, 2)
    entero2 = int(binario2, 2)

    # Sumar los enteros
    resultado_entero = entero1 + entero2

    # Convertir el resultado de nuevo a binario
    resultado_binario = bin(resultado_entero)[2:]

    # Agregar ceros a la izquierda si es necesario
    if len(resultado_binario) < len(binario1):
        diferencia = len(binario1) - len(resultado_binario)
        resultado_binario = "0" * diferencia + resultado_binario

    return resultado_binario


def restar_binarios(binario1, binario2):
    # Convertir los binarios a enteros
    entero1 = int(binario1, 2)
    entero2 = int(binario2, 2)

    # Restar los enteros
    resultado_entero = entero1 - entero2

    # Convertir el resultado de nuevo a binario
    resultado_binario = bin(resultado_entero)[2:]

    # Agregar ceros a la izquierda si es necesario
    if len(resultado_binario) < len(binario1):
        diferencia = len(binario1) - len(resultado_binario)
        resultado_binario = "0" * diferencia + resultado_binario

    return resultado_binario


# Pedir los números binarios al usuario
binario1 = input("Introduce el primer número binario: ")
binario2 = input("Introduce el segundo número binario: ")

# Sumar los números binarios
resultado_suma = sumar_binarios(binario1, binario2)

# Restar los números binarios
resultado_resta = restar_binarios(binario1, binario2)

# Mostrar los resultados
print(f"El resultado de sumar {binario1} y {binario2} es: {resultado_suma}")
print(f"El resultado de restar {binario1} y {binario2} es: {resultado_resta}")

Si necesitan otra explicación sobre la resta les dejo este video de la ing. Marisol Maldonado, que también es profe en Platzi.
https://www.youtube.com/watch?v=3nt9zrgCt_U

Cuando la resta es de 0 - 1 = 1 y agregamos un 1 a la siguiente resta, ese 1 que agregamos resta al número de arriba y después la diferencia es restada por el número de abajo.
.

recomiendo este canal para entender más a profundidad las operaciones binarias, incluso como construir una secuencia de números binarios, entender el acarreo y el acarreo negativo
https://www.youtube.com/watch?v=3nt9zrgCt_U&ab_channel=Pasosporingeniería

Profe en su explicación 0 - 1 dice que da como resultado 1 y sube un 1, pero yo creo que seria mas correcto decir que queda un -1, porque el siguiente número inmediato esta positivo, entonces para poder operar la resta sería -1+0 = 0-1 ó -1+1 = 1-1 según sea el caso... ejemplo: 4 - 1 = 3 100 - 1 ------- 011 >> 1) 0-1 = 1 (llevo -1) 2) 0-0 = 0 (-1 que llevo) = 1 (llevo -1) 3) 1-0 = 1 ( -1 que llevo) = 0

Pregunto.
ES algo muy importante este cuestionamiento.

Si decimos que en binario no existen los números negativos quiere decir que una condición para que una resta se pueda hacer es que el número de arriba sea más grande que el de abajo, verdad ? si lo vemos así en el sistema decimal se hace lo mismo, se pone el numero mas grande arriba pero el resultado quedará con el signo del número más grande…Otra cosa a tener en cuenta entonces sería la capacidad de reconocer que numero es mas grande, sin esto no podrías ni iniciar la operación, en binario el número más grande es el que tenga el uno en una posición de exponente mayor.

para los que quieran ejercicios de suma y resta aqui hay algunos
https://es.liveworksheets.com/ka3017783dr

10100–>20
10101–>21

101001–>41

Ejercicio Binario a Decimal

Resultado de 1001 a decima l= 9

Reto min. 3.:16

1 x 2 ^0 = 1
0 x 2 ^1 = 0
0 x 2 ^2 = 0
1 x 2 ^3 = 8

Al sumar 1+0+0+8 tenemos que el decimal (del numero binario 1001) es 9

Información básica pero valiosa

![](https://static.platzi.com/media/user_upload/upload-dd4280e1-6ccb-4bd0-b9a6-48600064a6c0.png)
![](https://static.platzi.com/media/user_upload/upload-dea36f0c-ecfc-4edc-b440-c050c8e5f90a.png)
![](https://static.platzi.com/media/user_upload/upload-43d02b11-980d-419d-94cd-b5b7fa0df7bd.png)
Para que sea mas entendible la suma: **0 + 0 = 0** (Si no tienes nada y no sumas nada, sigues sin tener nada). * **0 + 1 = 1** (Si no tienes nada y sumas uno, tienes uno). * **1 + 0 = 1** (Si tienes uno y no sumas nada, sigues teniendo uno). * **1 + 1 = 10** (¡Esta es la clave!) Si tienes uno y sumas otro, obtienes "dos". Pero en binario no existe el número "2". El "dos" en binario se escribe como "10" (un 'grupo de dos' y cero 'unidades'). Entonces, escribes el **0** y te **llevas 1** (acarreo) a la siguiente columna de la izquierda, igual que cuando sumas 5 + 5 = 10 en decimal (escribes 0 y te llevas 1)
**RESTA** 50: **110010** 33: **100001** **-------------** 17: 0**10001** **Comprobación** 010001 = 1x1 + 0x2 + 0x4 + 0x8 + 1x16 + 0x32 = 1 + 0 + 0 + 0 + 16 + 0 = 17
50: **110010** 33: **100001** **-------------** 83: **1010011** **Comprobación** 1010011 = 1x1 + 1x2 + 0x4 + 0x8 + 1x16 + 0x32 + 1x64 = 1 + 2 + 0 + 0 + 16 + 0 + 64 = 83
1001 = 1x1 + 0x2 + 0x4 + 1x8 = 9
`class Program` `{` ` static void Main()` ` {` ` // Solicita al usuario que ingrese el primer número binario` ` Console.WriteLine("Ingrese el primer número binario:");` ` string binario1 = Console.ReadLine();` ` // Solicita al usuario que ingrese el segundo número binario` ` Console.WriteLine("Ingrese el segundo número binario:");` ` string binario2 = Console.ReadLine();` ` // Realiza la suma de los números binarios` ` string suma = SumarBinarios(binario1, binario2);` ` // Realiza la resta de los números binarios` ` string resta = RestarBinarios(binario1, binario2);` ` // Convierte los resultados binarios a decimales` ` int sumaDecimal = ConvertirBinarioADecimal(suma);` ` int restaDecimal = ConvertirBinarioADecimal(resta);` ` // Muestra los resultados en la consola` ` Console.WriteLine($"Suma binaria: {suma}");` ` Console.WriteLine($"Suma decimal: {sumaDecimal}");` ` Console.WriteLine($"Resta binaria: {resta}");` ` Console.WriteLine($"Resta decimal: {restaDecimal}");` ` }` ` // Método para sumar dos números binarios representados como cadenas` ` public static string SumarBinarios(string bin1, string bin2)` ` {` ` // Asegura que ambas cadenas tengan la misma longitud rellenando con ceros a la izquierda` ` int maxLength = Math.Max(bin1.Length, bin2.Length);` ` bin1 = bin1.PadLeft(maxLength, '0');` ` bin2 = bin2.PadLeft(maxLength, '0');` ` string resultado = string.Empty;` ` int acarreo = 0;` ` // Recorre las cadenas de derecha a izquierda para realizar la suma` ` for (int i = maxLength - 1; i >= 0; i--)` ` {` ` int bit1 = bin1[i] - '0';` ` int bit2 = bin2[i] - '0';` ` // Suma los bits y el acarreo` ` int suma = bit1 + bit2 + acarreo;` ` // Calcula el bit resultante y el nuevo acarreo` ` resultado = (suma % 2) + resultado;` ` acarreo = suma / 2;` ` }` ` // Si hay un acarreo restante, se añade al resultado` ` if (acarreo > 0)` ` {` ` resultado = acarreo + resultado;` ` }` ` return resultado;` ` }` ` // Método para restar dos números binarios representados como cadenas` ` public static string RestarBinarios(string bin1, string bin2)` ` {` ` // Asegura que ambas cadenas tengan la misma longitud rellenando con ceros a la izquierda` ` int maxLength = Math.Max(bin1.Length, bin2.Length);` ` bin1 = bin1.PadLeft(maxLength, '0');` ` bin2 = bin2.PadLeft(maxLength, '0');` ` string resultado = string.Empty;` ` int acarreo = 0;` ` // Recorre las cadenas de derecha a izquierda para realizar la resta` ` for (int i = maxLength - 1; i >= 0; i--)` ` {` ` int bit1 = bin1[i] - '0';` ` int bit2 = bin2[i] - '0' + acarreo;` ` // Si el bit1 es menor que bit2, se toma prestado de la siguiente posición` ` if (bit1 < bit2)` ` {` ` bit1 += 2;` ` acarreo = 1;` ` }` ` else` ` {` ` acarreo = 0;` ` }` ` // Calcula el bit resultante` ` resultado = (bit1 - bit2) + resultado;` ` }` ` // Elimina los ceros a la izquierda del resultado` ` return resultado.TrimStart('0');` ` }` ` // Método para convertir una cadena binaria a su valor decimal` ` public static int ConvertirBinarioADecimal(string binario)` ` {` ` int decimalValue = 0;` ` int baseValue = 1;` ` // Recorre la cadena binaria de derecha a izquierda` ` for (int i = binario.Length - 1; i >= 0; i--)` ` {` ` // Si el bit es '1', se añade el valor de la base actual al valor decimal` ` if (binario[i] == '1')` ` {` ` decimalValue += baseValue;` ` }` ` // Multiplica la base por 2 para la siguiente posición` ` baseValue *= 2;` ` }` ` return decimalValue;` ` }` `}` Adjunto mi aporte de esta clase
![](https://static.platzi.com/media/user_upload/image-7d3a2432-439b-437a-8f08-e82e1f5f2721.jpg)
![](https://static.platzi.com/media/user_upload/image-39815610-4275-4443-a170-1cb026ff6e7d.jpg)
Segundo ejercicio propuesto: ![](https://static.platzi.com/media/user_upload/imagen-06708c47-e62b-4b8b-80c6-2479410e58f9.jpg)
Esta es la respuesta al ejercicio planteado: ![](https://static.platzi.com/media/user_upload/imagen-3d1c17e0-bf00-48c4-a860-8351402f8aef.jpg)
![](https://static.platzi.com/media/user_upload/restas%20binarios-9bdbc113-9a2b-47d9-b5b0-c684e4a9a0bd.jpg)
![](https://static.platzi.com/media/user_upload/decimal%20a%20binario-02a3481f-6bce-47b1-90f2-fb8f4ceeaf24.jpg)
### Suma y Resta de Números Binarios La suma y resta de números binarios son operaciones fundamentales en informática y matemáticas. Aunque pueden parecer complejas al principio, siguen reglas simples y se realizan de manera similar a las operaciones decimales, adaptadas a los dos dígitos del sistema binario. #### Suma de Números Binarios 1. **Reglas Básicas**: * 0+0=0 * 0+1=1 * 1+0=1 * 1+1=10 (se lleva 1) 2. **Proceso**: * Alinea los números binarios por la derecha. * Suma cada columna de derecha a izquierda, llevando 1 si la suma es 10. #### Resta de Números Binarios 1. **Reglas Básicas**: * 0−0=0 * 1−0=1 * 1−1=0 * 0−1=1 (se presta 1) 2. **Proceso**: * Alinea los números binarios por la derecha. * Resta cada columna de derecha a izquierda, prestando 1 si es necesario. ### Conclusión La suma y resta de números binarios son operaciones fundamentales en informática y matemáticas. Aunque pueden parecer complejas al principio, siguen reglas simples y se realizan de manera similar a las operaciones decimales, adaptadas a los dos dígitos del sistema binario. Estas operaciones son esenciales para el funcionamiento de los circuitos lógicos y la manipulación de datos en los sistemas informáticos.
![](https://static.platzi.com/media/user_upload/image-e6f7a475-b3d1-48c9-a486-dca176d67acb.jpg)
Tengo una duda si sumo dos números binarios con diferente longitud por ejemplo 1000010 + 10001 -- mi resultado fue 110011 sin embargó al verificar mi resulta en ChatGPT, me dice que debo agregar ceros al numero más pequeño para que tenga la misma longitud. Es una regla? Siempre debe hacerse de esa manera? 🤔
Tengo una duda en la suma de números binarios el numero **1** acarreado se suma al inicio de la siguiente columna? Es decir se empieza con esa operación el numero **1** acarreado más lo que inicia en la columna de la izquierda
Y para las restas donde queda un numero negativo? por ej: 101-111= ? Como seria el procedimiento?
En el sistema binario, solo existen dos dígitos: 0 y 1. Cuando sumas 1 + 1, el resultado es 0 porque excede el valor máximo que puede representarse con un solo dígito. En este caso, "0" es el resultado y se "acarrea" un 1 al siguiente dígito, similar a sumar 10 en decimal (donde 9 + 1 = 10). Así, el 1 que llevas indica que necesitas incrementar el siguiente dígito en la suma. Para practicar, intenta sumar más números binarios usando las reglas que aprendiste en clase.
En el resumen está mal la parte de las reglas de la resta de números binarios, puesto que 1 - 0 es igual a 1 no a 0. ![](https://static.platzi.com/media/user_upload/image-d86fc2ab-7620-4a0e-9fe3-c209a615b686.jpg) En la clase si está correcto. ![](https://static.platzi.com/media/user_upload/image-dfd4f7a8-da87-4461-9bbd-106fbb8d35b7.jpg)
Suma y resta de binarios![](https://static.platzi.com/media/user_upload/Suma%20y%20resta%20de%20binarios-ee163593-3041-41d7-acd8-d58e704cf4cd.jpg)
quede un poco perdido al principio lo bueno es que se puede repetir la clase y comprender un poco mas 1 0 1 0 1 1 + 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 1 0 1 - 0 1 0 1 1 0 0 0 1 0 1 1
Si a ustedes no les dan los resultados de forma correcta es por lo siguiente: En el video hay un error en la explicación, o falta contenido, para verlo de otra forma Cuando tienen 1+1seria igual a 10 es decir dejamos el 0 y llevamos 1. Cuando tenemos 0-1 sería igual a 11 es decir dejamos el 1 y llevamos 1. Por ejemplo: 0110+0110 El primer bit es 0 El segundo es 11(dejamos uno y subimos 1) El tercero (sumamos el bit qué llevamos con 1 y da 10) luego tomamos el 10 sumado con el 1 inferior y nos queda un 11. Dejamos el 1 y llevamos 1 El cuarto (sumamos el bit qué llevamos con el último cero 0 y nos da 1 ) y eso lo sumamos al 0 inferior y nos queda 1 Si tomamos todos los resultados, nos da un total de 1100 Si hacemos el proceso como dice el video, posiblemente, añadamos unos cuantos ceros de más.
El resultado en decimal es 9. Su numero binario fué 1001
**Suma de Binarios** * 110111+ 001100 = 1000011 **Binario a Decimal** * 1 \* 2^0 = 1 \* 1 = 1 1 \* 2^1 = 2 \* 1 = 2 0 \* 2^2 = 4 \* 0 = 0 0 \* 2^3 = 8 \* 0 = 0 0 \* 2^4 = 16 \* 0 = 0 0 \* 2^5 = 32 \* 0 = 0 1 \* 2^6 = 64 \* 1 = 64 Número decimal = **67** **Resta de Binarios** * 11100010- 00111001 = 10101001
Les dejo un vídeo en que se practica también la resta y la multiplicación. https://youtu.be/-fXuszN9V8k?si=1ypZ8-CrjBmC483X
Suma de 110 + 011 y comprobación en decimales: ![](https://static.platzi.com/media/user_upload/image-cfdd59fc-1849-4076-9aef-00b201cd2a4d.jpg)
9 es el resultado de binario a decimal 1001
Buenas que tal? Tengo una consulta con un ejercicio, es el siguiente: (1010101) - (0010110) El resultado correcto es: 0111111 Pero a mi me da: 1001111 Y no sé por qué.
En la resta binaria, cuando restas 0 de 1, el resultado es 1. Sin embargo, al restar 1 de 0, necesitas "pedir prestado" del siguiente dígito a la izquierda, lo que causa que el resultado sea 1, pero el "acarreo" se debe considerar en el siguiente dígito. Por eso, el 1 que acarreas no se suma al resultado actual, sino que afecta el dígito inmediato a la izquierda en la siguiente operación. Es importante seguir practicando para afianzar estos conceptos.
En la suma binaria, cuando sumas 1 + 1, obtienes 0 y llevas 1 al siguiente dígito. Esto es porque el sistema binario solo tiene dos dígitos: 0 y 1. Cuando "llevas" un 1, lo estás usando para la siguiente posición a la izquierda, similar a cómo en decimal, al sumar 9 + 1, llevas 1 a la siguiente columna. Así que en tu ejemplo, después de sumar, el 1 que llevas se agrega al resultado de la siguiente suma, asegurando que la operación sea correcta en el sistema binario.
![](https://static.platzi.com/media/user_upload/drhf-f3805cec-0f1e-4f57-8dc6-771d2440e404.jpg)
![](https://static.platzi.com/media/user_upload/j-e915d3f0-6800-4f0d-9352-9402615102f6.jpg)
La temática de los números binarios es fundamental para entender cómo funcionan los algoritmos y los diagramas de flujo. Aunque ahora estás aprendiendo sobre el sistema binario, esto sienta las bases para resolver problemas y crear diagramas de flujo más adelante. La lógica que desarrollas al trabajar con binarios te ayudará en la creación de algoritmos eficientes. Continúa explorando, ya que los diagramas de flujo son una extensión natural de este conocimiento.
Para restar números binarios, debes seguir estas reglas: 1. 0 - 0 = 0 2. 1 - 0 = 1 3. 1 - 1 = 0 4. 0 - 1 = 1 (acarreas 1) Por ejemplo, al restar 101 - 011: - 1 - 1 = 0 - 0 - 1 (acarreas 1) = 1 - 1 - 0 = 0 El resultado es 010. La diferencia en la suma es que al sumar 1 + 1 obtienes 0 y acarreas 1, mientras que en la resta, si necesitas restar 1 de 0, también acarreas. La clave está en cómo manejas el acarreo en ambas operaciones.
1000- <u>0111</u> 0001
En la división, Que se hace cuando al terminar queda un remanente??
![](https://static.platzi.com/media/user_upload/image-09747ad8-29e6-4fc2-babd-ce2d7a72a996.jpg) ![](https://static.platzi.com/media/user_upload/image-d06b33c0-e460-4a17-b567-0b2167a2c3b9.jpg) ![](https://static.platzi.com/media/user_upload/image-df265fe5-0bc4-41d3-abb3-fcf946eef28a.jpg)
Despues de algunos errore pude resolver mis propio ejercicios. Quanto es 1011-0101= 100001101-11010010= 100001101-11010010= los dos ultimos me dieron mas tiempo y mas el ultimo en entender, pero si usamos la suma delcon la diferencia con el sustraendo se puede comprobar, en otras palabras si a-b=c, etonces se b+c=a
* En la suma, si el resultado de una columna excede el valor máximo para ese sistema, se lleva (acarrea) una unidad a la columna de mayor valor. Este concepto es igual tanto en binario como en decimal, aunque el valor a partir del cual ocurre el acarreo es diferente. * En la resta, si un número es más grande que el número que se está restando, debes pedir prestado de la columna siguiente a la izquierda. Este "préstamo" también existe en ambos sistemas.
Haciendo los ejercicios me ocurrió un error que no creo ser el primero al que le sucede. Recuerden que para convertir el binario a decimal se coloca de **DERECHA a IZQUIERDA** 30 minutos buscando el error
1001 en Binario Y 9 en decimal
Les comparto algunas anotaciones: ```txt Mi propuesta que podría ayudar a entender las reglas para la suma: 1 1 0 0 + + + + 1 0 1 0 _ _ _ _ 0 1 1 0 1 <- acarreo y esto para la resta: 1 1 0 0 - - - - 1 0 1 0 _ _ _ _ 0 1 1 0 1 <- acarreo Suma 1 0 1 1 + + + + 1 1 0 1 _ _ _ _ 0 1 1 0 0 0 1 0 0 1 + + + + 0 1 1 0 _ _ _ _ 1 1 1 1 Resta 1 1 0 1 - - - - 1 0 1 0 _ _ _ _ 0 0 0 0 1 1 1 0 0 1 - - - - 0 0 1 1 _ _ _ _ 0 0 0 1 1 0 ```
### Suma de números binarios 1. **Alinea los números**: Escribe los números binarios uno encima del otro, alineando los dígitos a la derecha. 2. **Suma de derecha a izquierda**: Comienza sumando los dígitos de la derecha hacia la izquierda. * **0 + 0 = 0**: No hay cambio. * **1 + 0 = 1**: El resultado es 1. * **0 + 1 = 1**: El resultado es 1. * **1 + 1 = 10**: El resultado es 0 y llevamos 1 a la siguiente columna. * **1 + 1 + 1 = 11**: El resultado es 1 y llevamos 1 a la siguiente columna. 3. **Incluye el acarreo**: Si hay un acarreo, agréguelo a la siguiente columna a la izquierda. ### Ejemplo de suma: 1011 \+ 1101 \------ 11000 Paso a paso: * **Columna 1**: 1 + 1 = 10, escribimos 0 y llevamos 1. * **Columna 2**: 1 + 0 + 1 (acarreo) = 10, escribimos 0 y llevamos 1. * **Columna 3**: 0 + 1 + 1 (acarreo) = 10, escribimos 0 y llevamos 1. * **Columna 4**: 1 + 1 (acarreo) = 10, escribimos 0 y llevamos 1. * **Columna 5**: 1 (acarreo), escribimos 1.
![](<https://drive.google.com/file/d/1JC97fNHu8RP-AhU26pVzHkuznnS5UcO9/view?usp=drive_link, https://drive.google.com/file/d/1J28cHAgHVbW4sFRaEKcLJe7xJpEcihiU/view?usp=drive_link>)https://drive.google.com/file/d/1JC97fNHu8RP-AhU26pVzHkuznnS5UcO9/view?usp=drive\_link, <https://drive.google.com/file/d/1J28cHAgHVbW4sFRaEKcLJe7xJpEcihiU/view?usp=drive_link> La tarea maeta