Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Stdlib.h

11/12
Recursos

Aportes 10

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

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");.

Creo que debería usarse el while mas que el for, porque no sabemos cuantos números binarios necesitara nuestro array

NO ENTENDI LA RAZON DE SACAR EL MODULO

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

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;
}

El codigo es algo complicado, covierte de decimal negativo o positivo a binario. Uso la logaritmacion para hallar cuantas posiciones exactas necesito en el array segun la cantidad de bits que tenga el numero en binario. ¡Feliz dia!

#include <stdio.h>
#include <math.h>

int main(void) {

int num;
int cantidad = 0;

 
printf("DECIMAL A BINARIO");

//While solo para hacer un blucle infinito  
while(cantidad > -1)
  {
    
printf("\n\nIngresa un numero entero: ");
scanf("%i", &num);
printf("%i en binario: ", num);

//If por si el numero es negativo 
if(num < 0)
  { num = fabs(num);
  printf("-"); }

//Logaritmacion para saber cuantos bits ocupa el numero en binario
//Log(16) = 4 - 16 tiene 5 bits.
if(num <= 16) { cantidad = 5; }
  else 
  { cantidad = ceil(log((double)num) / log((double)2)); }
  
int binNum[cantidad];
  
int i;
for(i = 0; num > 0; i++)
  { binNum[i] = num % 2;
    num /= 2;    
  }

/*If por si el binario tiene menos de 4 bits 
 agregar los ceros y completarlos */
if(num == 0 && i < 4) 
 while(i!=4){ binNum[i] = 0; i++; }
  
for(i = i-1; i >= 0; i--  )
  printf("%i", binNum[i]);
  }
}

Muy buena clase y ejemplo, gracias 😃

Un saludo.

si maso menos , lo entendí .Igual fue muy clara la explicación de Ricardo.

buena clase