La 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:
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.
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
void decimalBinario(int numero) { unsigned bit = 1U << sizeof(unsigned) * CHAR_BIT - 1; while (bit){ bit >>= 1; } }
Un saludo