De binario a decimal en lenguaje C.

Iniciado por NOB2014, 7 Noviembre 2015, 18:14 PM

0 Miembros y 1 Visitante están viendo este tema.

NOB2014

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.-

#include <stdio.h>
#include <string.h>

int main(void){
char cadena[33];
float binario = 1100110;
int elementos, decimal = 0, operando = 1;

sprintf(cadena,"%1.0f",binario);
elementos = strlen(cadena) ;

for(--elementos; elementos >= 0; elementos-- ){
if( cadena[elementos] == '1' ){
decimal += operando;
}
operando *= 2;
}

printf( "En binario %s  ==> en decimal %d", cadena, decimal );

return 0;
}

Bueno es todo.-
Saludos.
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

furciorifa

Tú algoritmo está bien aunque en algunas parte pierde legibilidad, pero está bien .

NOB2014

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
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

NOB2014

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
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-