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
Tú algoritmo está bien aunque en algunas parte pierde legibilidad, pero está bien .
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
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