Cita de: DanielC# en 14 Febrero 2015, 18:05 PMLa duda es sobre cómo establecer el valor correcto de la variable bits, si bien practicando un poco tal vez lograría que si por ej. El ingreso es:Algunos comentarios solo para redondear el tema:
2147483648 en binario ? 10000000000000000000000000000000
Obtendría el resultado esperado pero no me quedaría claro por qué establecí dicho valor.-
Me podrían decir el criterio que debo utilizar para establecer el valor correcto en la variable bits.
* No es necesario comparar el valor leído contra INT_MAX ya que no hay forma de que sea mayor que este, esa comparación la debes eliminar.
* No es necesario calcular el valor ya que este ya lo tienes y lo pasas como argumento a la función "decimalBinario", otra cosa seria procesar una cadena con la representación del numero en base 2 y en base a esta obtener el numero.
* No es necesario un contador para controlar el bucle de la función, en su lugar terminas este cuando la mascara sea cero:
Código (c) [Seleccionar]
void decimalBinario(int numero)
{
unsigned bit = 1U << sizeof(unsigned) * CHAR_BIT - 1;
while (bit){
putchar(numero & bit ? '1' : '0');
bit >>= 1;
}
putchar('\n');
}
Un saludo