Hooooola vengo de visita a este foro, siempre estoy en "hackers", aunque no lo soy...
bueno, el algoritmo para esto es el siguiente (para float<0):
1) multiplicas num (el float) *2
2) if(num>1) entonces agrega 1 a una pila o arreglo
y le restas 1 (num--)
else
agrega 0 a la pila
3) repite 1-2 hasta la precision q quieras
4) pasa la pila al tipo de dato q desees
ej:
0,639 *2=1
(1.278-1)*2=0
0.556*2=1
(1,112-1)*2=0
0.224*2=0
0.448*2=0
0.896*2=1
1,792...
espero q te sirva
bye