Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NOB2014 en 7 Noviembre 2015, 18:14 pm



Título: De binario a decimal en lenguaje C.
Publicado por: NOB2014 en 7 Noviembre 2015, 18:14 pm
Hola, gente, que tengan un muy buen día.-
Les dejo este código para que me digan de que otra manera se puede lograr lo mismo, los consulto porque siempre los expertos como Uds. tienen una manera distinta de lo que yo me pude imaginar, no realice muchas pruebas pero las que realice me dan el resultado correcto, la lógica me parece que es coherente.-
En cuanto al float es porque forma parte de una calculadora que además de sumar, restar, etc., transforma un decimal en binario, en hexadecimal y viceversa.-

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main(void){
  5. char cadena[33];
  6. float binario = 1100110;
  7. int elementos, decimal = 0, operando = 1;
  8.  
  9. sprintf(cadena,"%1.0f",binario);
  10. elementos = strlen(cadena) ;
  11.  
  12. for(--elementos; elementos >= 0; elementos-- ){
  13. if( cadena[elementos] == '1' ){
  14. decimal += operando;
  15. }
  16. operando *= 2;
  17. }
  18.  
  19. printf( "En binario %s  ==> en decimal %d", cadena, decimal );
  20.  
  21. return 0;
  22. }
Bueno es todo.-
Saludos.
Daniel


Título: Re: De binario a decimal en lenguaje C.
Publicado por: furciorifa en 7 Noviembre 2015, 21:48 pm
Tú algoritmo está bien aunque en algunas parte pierde legibilidad, pero está bien .


Título: Re: De binario a decimal en lenguaje C.
Publicado por: NOB2014 en 7 Noviembre 2015, 22:12 pm
Hola furciorifa.
Gracias por ocuparte, me gustaría que me digas que modificar para hacerlo más legible, pero si no me lo comentas de una es evidente que no te place hacerlo.-

Saludos.
Daniel


Título: Re: De binario a decimal en lenguaje C.
Publicado por: NOB2014 en 10 Septiembre 2017, 18:20 pm
Hola. muy buen día para todos.-
Quisiera saber quien fue el "gaucho" que borro el post de ¿....
Si no lo pueden reponer por lo menos envíenmelo por correo.-

Un abrazo.
Daniel