Hola,
Me imagino que estas buscando la función
atof.
La representación binaria de un flotante es interna.
Cita: ... para despues meter estos datos a un archivo binario para ahorrar espacio ...
Como tu objetivo es ahorrar espacio, el almacenamiento de un float es de 4 bytes, sin importar lo que contenga; es decir, su representación interna siempre va a ser binaria (aunque no se pueda ver). Al guardar en formato binario tienes que usar
fwrite y cada número va a ocupar 4 bytes exactos dentro del archivo, sin importar si es el número 1 o un millón en binario, decimal o hexadecimal, etc.
Saludos,
ps:
En el caso quede alguna duda, por supuesto que se puede hacer un algoritmo que convierta a su representación en caracteres 1 y 0. Pero estarías otra vez en el mismo lugar, puesto que un montón de caracteres con 1 y 0 van a ocupar mucho más espacio que el String inicial en notación científica o un float de 4 bytes.