Es un código para convertir un valor en binario hacia cadena de caracteres. Lo que no se es como va haciendo el proceso para guardar los valores en la cadena de caracter
void bin_to_string(unsigned int value, char *str)
{
char aux;
unsigned int unit;
aux = 0;
str[0] = str[1] = str[2] = str[3] = str[4] = '0';
str[5] = 0;
unit = 10000;
while (value)
{
if (value>=unit)
{
value -= unit;
str[aux]++;
} else
{
aux++;
unit /= 10;
}
}
while (str[0]=='0')
{
for (aux=0; aux<=4; aux++) str[aux]=str[aux+1];
}
}
Mod: Los códigos deben ir en etiquetas GeSHi
No sé de donde habrás sacado este código, pero no me parece un buen ejemplo. Me explico: En primer lugar, lo que tú pasas a la función es un entero y un puntero hacia un tipo char. Pues bien, tu no sabes si ese puntero está inicializado o no, o siquiera sabes si tiene espacios suficientes. Por ejemplo, podrías haber declarado una variable así:
char cadena[2] = "";
y tu se la pasarías a la función como bin_to_string(value, cadena); En este caso, es posible que el programa crashee por salirse de la memoria del programa. En segundo lugar, a mi parecer es mejor tenerlo mas ordenado. Cuando declaras la variable uint la dejas sin inicializar, y la inicializas después con una constante. Mejor que la inicialices cuando la declaras siempre que sea posible.
Por cierto, usa las etiquetas GeSHI :P
Mod: no hacer doble post