⚡👉 Mis ejercicios
Introducción
¿Qué es una operación matemática?
Propiedades y orden de las operaciones
Quiz: Introducción
Sistema binario
¿Qué es el sistema binario?
Conversión entre binario y decimal
Suma y resta de binarios
Multiplicación y división de binarios
Quiz: Sistema binario
Operadores
¿Qué son las tablas de verdad?
Operadores lógicos
Operadores aritméticos
Operadores de comparación
Reto 0: identifica los operadores
Quiz: Operadores
Algoritmos y diagramas de flujo
¿Qué es un algoritmo? ¿Cómo resolver problemas con algoritmos?
¿Qué es un diagrama de flujo?
Reto 1: ¿hay dinero en el cajero electrónico?
Reto 2: buscador de ciudades
Reto 3: login de usuarios
Quiz: Algoritmos y diagramas de flujo
Próximos pasos
Toma el Curso de Pensamiento Lógico: Tipos de Datos y Estructuras de Control
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en títulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Ana Belisa Martínez
La suma y resta de binarios se ejecutan aplicando una serie de reglas, que nos dan los distintos resultados de operar los dos números que componen este sistema (0 y 1).
Para sumar números binarios se tienen que seguir las reglas proyectadas en la siguiente tabla:
| Reglas | Resultados | | --- | --- | | 0 + 0 = | 0 | | 0 + 1 | 1 | | 1 + 0 = | 1 | | 1 + 1 = | 0 y acarreo 1 |
Una vez se tienen claras estas reglas se procede de la misma forma en la que se opera cuando se suman números del sistema decimal, es decir, se comienzan a operar los números de derecha a izquierda. Ejemplo:
El resultado de sumar los números binarios 110 y 001 es 111. Esto se debe a que las reglas nos dicen que 0 +1 = 1 y que 1 + 0 = 1.
Para rectar números binarios se tienen que seguir las reglas proyectadas en la siguiente tabla:
| Reglas | Resultados | | --- | --- | | 0 - 0 = | 0 | | 0 - 1 = | 1 y acarreo 1 | | 1 - 0 = | 0 | | 1 - 1 = | 0 |
En la resta de número binario, la resta 0 -1 se resuelve de forma a idéntica a como se resuelve en el sistema decimal. Esto concité en tomar una unidad del decimal que sigue: 0 - 1 = 1 y se acarrea 1.
¡Compártenos en los comentarios que diferencias y similitudes encontraste entre sumar y restar números decimales y números binarios!
Contribución del curso creada por: Silfredo Ibarra.
Aportes 434
Preguntas 82
⚡👉 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
✨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 0
+0 0 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!
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
1001 --> 9
0010 --> 2
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! (●’◡’●)
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.
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
Con esta calculadora verificaba los resultados 😃 https://miniwebtool.com/es/binary-calculator/
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
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 🙌🏻
https://youtube.com/playlist?list=PLeySRPnY35dGpDpTnEM86nJAEKVP8LD6v&si=YlajothuJEPNdaNu
Aqui proponen una manera mas sencilla de realizar las operaciones y la conversion
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:
¡Por supuesto! Vamos a realizar la resta de los números binarios (101000) y (11001) paso a paso.
101000 (minuendo)
- 011001 (sustraendo, añadimos un 0 a la izquierda para alinearlos)
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)
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.
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
Hola! por si alguien quiere practicar:
https://docs.google.com/spreadsheets/d/1yo3Lpl_3nYS4OeoKMxfGPLpH4Qwe_YpHd7lbyOcZ9gI/edit#gid=0
.
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
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
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
Aceptando el reto de la profe 👇
<code>
1 * 2^0 = 1
0 * 2^1 = 0
0 * 2^2 = 0
1 * 2^3 = 8
1 + 0 + 0 + 8 = 18
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?