Código C++:
Ver original
#include <cstdlib> #include <iostream> #include <iterator> using namespace std; /** * Código de: https://codigo--java.blogspot.com.uy/2013/06/java-basico-045-funcion-conversion.html * * 11. Desarrolla una función que muestre en binario un número entre 0 y 255. */ int* binario(int a); /*--------------------*/ int main(int argc, char** argv) { int num; cout << "\n Ingresa un número entre 0 y 255: "; cin >> num; if(num < 0 || num > 255){ cout << "\n ERROR"; } else { int* xbinario = binario(num); cout << "\n El binario de " << num << " es: "; for (int i = sizeof(xbinario) - 1; i >= 0; i--) { cout << *(xbinario + i); } cout << "\n"; } return 0; } int* binario(int a){ static int binario[1000]; if(a > 0 && a <= 255){ int cont = 0; int var = a; while (var != 0) { var = var/2; cont ++; } int t = 0; while (a != 0) { binario[t] = a%2; a = a/2; t++; } } return binario; }
El problema que tengo es que si ingreso una cantidad 255, me muestra bien los 11111111, pero si ingreso 10 me sucede esto:
Cita:
¿cómo puedo hacer para variar la cantidad de elementos usando sizeof o otro? ya que las librerias array o vector no están permitidas para la institución que estoy preparando material. Ingresa un número entre 0 y 255: 10
El binario de 10 es: 00001010
El binario de 10 es: 00001010
Espero sus respuestas y saludos.