Binarios

Carlos... Necesito un programa que me permita convertir números enteros en binarios... El programa lo hice pero tengo problemas para organizarlos cuando sale por pantalla, ya que allí se lee de derecha a izquierda y queda mal de esa manera.. Por favor si me uede enviar el programa que es sencillo te agradezco ... Sandra.

1 Respuesta

Respuesta
1
Ok, no me das muchos detalles así que supondré lo siguiente para la solución:
Supongo que estas haciendo divisiones entre dos del numero dado y que los residuos los estas poniendo en un arreglo de enteros (al cual lamaremos "iArrNum[]"), supongo que es un arreglo de enteros ya que ponerlos en un int o un long no es muy buena idea, a menos que luego necesites hacer operaciones con esos resultados (lo cual supongo que no harás).
Supongo que los resultados te dan invertidos así:
[0][1][1] Cuando lo que debiera salir es:
[1][1][0]
Supongo que al obtener todo el resultado sabes cual es el índice del último numero que obtuviste ejemplo:
[0][1][1]
El índice del íltimo numero es 2. A este indice le vamos a llamar "iLongitud".
Supongo que estas manejando C++ (no recuerdo si lo que voy a hacer también funciona correctamente en C).
Al programa que ya tienes si no esta como supongo agregale lo necesario para que quede como te digo (si dices que ya lo tienes y que da los números invertidos no creo que el programa diste mucho de lo que yo me imagino, si no es así prácticamente ya te dije que hay que hacer con las suposiciones anteriores).
Al arreglo de enteros aplícale este algoritmo:
for (int i=0, i<iLongitud; i++, iLongitud--) //No recuerdo si se pone i++; iLongitud-- o i++, iLongitud
{
int temp = iArrNum;
iArrNum = iArrNum[iLongitud];
iArrNum[iLongitud] = temp;
}
¿Qué hace el arlgoritmo?
Voltea el arreglo. Ejemplo:
[0][1][1]
Cuando entra al ciclo tenemos el indice primero, osea el 0 y el ultimo que es iLongitud lo que hacemos es copiar el numero que esta en el indice 0 en este caso es [0] a la variable temp, después tomamos el ultimo numero [1] (el último un por supuesto) y luego lo copiamos en el indice 1 con lo que obtenemos:
[1][1][0]
Se pasa al siguiente ciclo, nuestra variable i es el indice del 1 de en medio e iLongitud es ese mismo indice por lo cual el ciclo se acaba
Por que i debe ser menor que iLongitud, si se hubiese cumplido la condición se seguiría repitiendo el ciclo.
Si usas c, debes crear las variables temp e i fuera del ciclo for y por supuesto borrar los int que les anteceden dentro del ciclo de forma que nada más quedel el nombre por ejemplo:
//creación de las variables:
int iLong, temp;
...
for (....
temp = iArrNum;
...
Espero que con esto resuelvas el problema toma en cuenta que estoy suponiendo muchas cosas por que no me das ningún detalle de tu programa
byte y no olvides calificar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas