Federico Moreno
Reinaldo Mendoza
Irving Juárez
Reinaldo Mendoza
Alejandro de Jesús Escareño Flores
Javi Felices
Jesús Ignacio García Fernández
Juan Pablo Perez
Valeria Vanesa Zalazar
Erick Ricardo Camberos Cerecer
Alejandro de Jesús Escareño Flores
Adrián de los Reyes
Fernando Yutiz
Dan Yael Sajarópulos Verdugo
ronaldo alejandro llanos
David Carrillo Castillo
Christian Molina Vázquez
Gabriel Obregón
Marcelo Gaston Duarte
Platzi
Jhonathan Hugo Bernal Maquera
Erick Alay
Ricard Soler Solà
Hector Fabian Rodriguez Acosta
Bulmaro Arellano Navarrete
Emiliano Fernández Cervantes
Francisco Ponce
Emiliano Fernández Cervantes
Rodrigo Martinez
Rodrigo Martinez
Eduardo Vladimir Azanza Lutsak
Oriol Fernando Palacios Durand
Jorge Varas
Para quienes usamos Mac o Linux, las dos funciones system() utilizadas no funcionarán. Porque corren solo en Windows. Sí que la primera tiene su versión para sistemas UNIX. Para limpiar la consola, en lugar de system(cls); para Windows, deben usar system("clear");.
Buen recordatorio
Creo que debería usarse el while mas que el for, porque no sabemos cuantos números binarios necesitara nuestro array
Me parece acertado
Creo que si "sabemos". Es el valor que introduzcan (n). Como tal no sabemos, pero el programa, una vez introducido el número, si va a saber cuantos ciclos son.
Buenas peña. Otra opción para limpiar la pantalla válida para otros SSOO.
system("cls || clear");
Un saludo y gracias.
Mi versión del Decimal2Binary.c
#include <stdlib.h> #include <stdio.h> int main(void) { long number; int binaryNumber[12]; int i; i = 0; printf("Introduzca un valor\n"); scanf("%d", &number); while (i++ < 12) binaryNumber[i] = 2; i = 0; while (number >= 0) { if(i < 12) binaryNumber[i] = number % 2; number = number / 2; if(number == 0) number--; i++; } printf("el número binario es: "); if(i > 12) i = 12; while (i-- > 0) if (binaryNumber[i] != 2) printf("%d", binaryNumber[i]); printf("\n"); }
salida
Introduzca un valor 8 el número binario es: 1000
Gracias por tu aporte compañero.
Gracias por tu aporte compañero, esta muy bueno el código.
NO ENTENDI LA RAZON DE SACAR EL MODULO
Para que en "n" se guarde el modulo. Si ese número es divisible entre 2, significa que se puede seguir dividiendo. (Al menos así lo entendí). :)
Porque el modulo siempre va a ser 1 o 0,es decir el resto de la división, ya que son int y no float no tendrá decimal. Ese va a ser el valor que se guardará en el array, si n es 10, primero sera n=10/2= 5 (Modulo=0) n=5/2=2(Modulo=1) n=2/2=1(Modulo=0) n=1/2=0(Modulo=1)
Array con dichos modulos: [0,1,0,1] La suma de estos binarios da 10, se leen al revéz de como esta en el array, es decir 1010
Porque en la lineal 15 del scanf puso el símbolo & delante de n? Esa parte del video quedo cortada y no hay explicación
El símbolo de ampersand (&) se utiliza para obtener el puntero (sección de memoria) de una variable. La función scanf espera como parámetro un puntero, así que es necesario pasar el puntero de la variable n, por ello es que el argumento es &n.
si maso menos , lo entendí .Igual fue muy clara la explicación de Ricardo.
color para linux?
Con Whiles
// 1er paso Dividir el valor entre 2 y almacenar el resto, mod, en un array // 2do paso dividir otra vez entre 2 y almacenar el restante // Repetir hasta que nuestro número ya no se pueda dividir #include <stdio.h> #include <stdlib.h> int binaryNumber[12], n, i; main() { //system("cls"); //system("color 9F"); printf("Ingrese un valor decimal\n"); scanf("%d", &n); printf("Usted va a convertir número %d a binario\n", n); while (n > 0) { binaryNumber[i] = n % 2; n = n / 2; i++; } i = i - 1; printf("La conversión de la conversión es: "); while (i >= 0) { printf("%d", binaryNumber[i]); i--; } return 0; }
✨ Conversión de Decimal a Binario en C
🔹 Idea Principal
Transformar un número decimal → binario con:
🔹 Algoritmo Paso a Paso
🔁 Repite hasta que el cociente sea 0:
1️⃣ Divide el número entre 2
2️⃣ Guarda el resto (0 o 1) en un array
3️⃣ Al final → lee los restos al revés
📌 Resultado = número binario
🔹 Código en C
#include <stdio.h>
#include <stdlib.h>
int main() {
int binaryNumber[12];
int n, i;
printf("Ingrese un valor decimal: ");
scanf("%d", &n);
for(i = 0; n > 0; i++) {
binaryNumber[i] = n % 2;
n = n / 2;
}
printf("La conversión a binario es: ");
for(i = i - 1; i >= 0; i--) {
printf("%d", binaryNumber[i]);
}
return 0;
}
🔹 Explicación Express
📂 stdio.h → entrada/salida (printf, scanf)
⚙️ stdlib.h → funciones de sistema (opcional aquí)
📦 Arrays → guardan restos de la división, luego se leen al revés
🔹 Ejemplo de Verificación
👉 Entrada: 30
👉 Salida esperada: 11110
✔ Confirmación: en Google → “11110 binary to decimal” = 30
🔹 Para Recordar
✅ Arrays = memoria para restos
✅ Método útil en programación de bajo nivel y sistemas embebidos
✅ Practicar refuerza la lógica de algoritmos
Cual seria el proximo curso??? Existe?
Sí, existen cursos adicionales sobre CSS Grid en la plataforma. Te recomendaría buscar en la plataforma para encontrar el próximo curso que se ajuste a tus necesidades y continuar aprendiendo sobre CSS Grid.
¿Qué es un array?
Un array es una estructura de datos para guardar información, tambien se le conoce como vector, por ser unidimensional..., dependiendo de sus dimensiones puedes tener matrices o tensores.
Si has usados otros lenguajes como python podrías asimilarlo con una lista, pero con la restricción de que un array solo puede guardar un tipo de dato.
Espero te haya resuelto la duda :D.
Alguien me podría decir porque su main no está tipado con un int e igualmente su código compila y funciona?
Soy solo yo o los videos de este curso suenan muy pasitooooo?
Hola Héctor,
Asumo que quisiste preguntar si se escucha muy bajito, yo los escucho normal y entendibles, si quisiste decir otra cosa o me estoy confundiendo con tu consulta, por favor, indícamelo
Alguien sabe que curso va después de este?
Hola Emiliano,
¿Qué tal van los cursos?
Si estas siguiendo la ruta de la Escuela de Programación y Desarrollo de Software sería el Curso de Introducción a C++. De lo contrario podrías compartirme el nombre de la ruta que estas siguiendo y con gusto te ayudaría a buscar el siguiente curso.
Hola, estoy tomando la ruta de IoT, aunque la verdad me gustaría tomar más cursos de C.
El siguiente codigo ocupa conocidos operadores para hacer las tareas de aritmetica en vez de decimal, solamente con los bits que representan al numero decimal en especifico, esto para el computador es ordenes de magnitud mas rapido que hacer las dichas operaciones aritmeticas.
#include <stdio.h> #include <stdlib.h> int binaryNumber[32], n, i; int main() { printf("Ingrese un numero decimal: "); scanf("%d", &n); int originalN = n; // Save the original value of n for (i = 0; n > 0; i++) { binaryNumber[i] = n & 1; n >>= 1; } printf("El numero binario es: "); for (i = i - 1; i >= 0; i--) { printf("%d", binaryNumber[i]); } printf("\n"); printf("El numero hexadecimal es: %X\n", originalN); return 0; }
El siguiente codigo ocupa conocidos operadores para hacer las tareas de aritmetica en vez de decimal, solamente con los bits que representan al numero decimal en especifico, esto para el computador es ordenes de magnitud mas rapido que hacer las dichas operaciones aritmeticas.
#include <stdio.h> #include <stdlib.h> int binaryNumber[999], n, i; int main() { printf("Ingrese un numero decimal: "); scanf("%d", &n); for (i = 0; n > 0; i++) { binaryNumber[i] = n & 1; // Check the least significant bit n >>= 1; // Shift right by one bit } printf("El numero binario es: "); for (i = i - 1; i >= 0; i--) { printf("%d", binaryNumber[i]); } printf("\n"); return 0; }
el numero binario es mayor a 12 en casos de que elijamos entradas superiores.
binaryNumber[15] para el nùmero elegido de 23519.
La salida serà 101101111011111
Este es el código que implementé :3
#include <stdio.h> #include <math.h> #include <stdlib.h> int main(int argc, char const *argv[]) { char *inp; float number = 16; int sizeArr = (int)(1+log2(number)); int binaryNum[sizeArr]; for (int i = sizeArr - 1; i >= 0; i--) { binaryNum[i] = (int)number % 2; number /= 2; } for (size_t i = 0; i < sizeArr; i++) printf("%d", binaryNum[i]); return 0; }
Es fundamental resaltar el uso del logaritmo en el cálculo de las cifras del número en binario
Otra cosa es que para ejecutar el comando en linux es importante "linkear" la librería math.h, pueden encontrar las razones de esto en este enlace, básicamente no incluimos el código cuando usamos la cabecera math.h, si no solo los prototipos y formas de de llamar a las funciones, el código como per sé está en la librería libm, por esa razón es que debemos linkear el contenido (los códigos de las funciones per sé) y las definiciones (que están en math.h) manualmente al momento de compilar nuestro código
gcc output.c -o output -lm
Muy buena clase