Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: spicy_eyes en 9 Septiembre 2017, 15:47 pm



Título: ayuda en c
Publicado por: spicy_eyes en 9 Septiembre 2017, 15:47 pm
hola recién empiezo con el lenguaje c tengo un problema que la verdad no se como resolverlo , me dan un numero de 16 bits que se declara al inicio y me piden la cantidad de unos que tiene el numero en binario y de fs en hexadecimal. Tengo entendido que en el ccs te facilita las bases por lo que no es necesario crear un programa que transforme el numero . ademas quisiera saber ¿ como decido que base usar si tengo un numero ya declarado ?
gracias!


Título: Re: ayuda en c
Publicado por: AlbertoBSD en 9 Septiembre 2017, 16:39 pm
Tienes que dejarar un buffer para almacenar el numero convertido a Base Binario y a Base Hexadecimal, posteriormente en el buffer contar las letras que te piden, las F para el Hexadecimal y los 1 para el binario. Recorres el Buffer de inicio a FIn y con cada coincidencia Incrementas un contador, posteriormente imprimes el contardor

Ejemplo para Hexadecimal.

Código
  1. char convertido[10];
  2. int conincidencias = 0;
  3. sprintf(convertido,"%X",numero);
  4.  
  5. int i = 0;
  6. while(convertido[i] != 0 ){
  7. if(convertido[i] == 'f' || convertido[i] == 'F')
  8.  conincidencias++;
  9. i++;
  10. }