Hola robin, el formato de coma flotante que utiliza CCS ocupa 4 bytes, el primero (el LSB) contiene 8 bits con el exponente del numero, el siguiente bit es el bit de signo y los 23 bits restantes son la mantisa del mismo.
Si lo que quieres hacer es obtener la parte decimal del numero float entonces te conviene utilizar la función modf asi:
float Numero;
float Entero;
float Decimal;
Decimales = modf(Numero, &Entero);
Decimales almacena la componente decimal com ".xxxx". El problema con tratar de guarda la parte decimal de un numero float en una variable int es que indudablemente habra casos en los que perderás información, por lo tanto no existirá una función existente en CCS que pueda contemplar todos los casos. Deberás crear una particular para tu programa, puedes partir de la función modf, pero deberas ver como transladar los decimales a un numero entero representativo de los mismos. Realmente es raro lo que quieres lograr, porque con un int solo podrás obtener decimales con un incremento mínimo de +-0.0039, y es un desperdicio de exactitud para un numero float. Si solo necesitas una precisión de 3 o 4 decimales puedes utilizar un formato de numero con coma fija y asi tragar muchos menos recursos de tu querido PIC. Es lo que yo utilizo en mis proyectos en estos casos, sobre todo con la serie 16F o inferiores.
Esperamos tu respuesta. Un saludo.