Bueno, vengo a corregir un par de cositas y a organizar un poco el post

.
Separemos los temas:
Soy nuevo en programación en C y no logro con dar la solución de convertir un entero a binario de 16 bit.
Todo numero SI o SI se guarda en binario, por mas que pongas float, no significa que vas a tener 1 byte por cada digito, internamente es con binarios. Como bien decis necesitas 2 bytes por cada dato.
Respecto a como enviarlosComo bien te dicen, primero envias el primer byte. Y luego envias el segundo, sea rotandolo o usando punteros, pero este ultimo mejor dejarlo para cuando tengas mas confianza con C.
Respecto al tamaño de las varaibles intMas que de la arquitectura como ocurre en las arquitecturas x86, aca dependen del compilador usado.
int de CCS ( compilador 8 bits ) = 8 bits
int de XC8 = 16 bits
int de XC16 = 16 bits
int de XC32 = 32 bits
Es por eso que siempre discutí y recomiendo el uso de
stdint.h sea el compilador que sea.. Ya que al poner uint16_t se que va a tener 16 bits.
Fuente ( buscar por Data types ):
MPLAB® XC8 C Compiler User’s Guide
MPLAB® XC16 C Compiler User’s Guide
MPLAB® XC32 C/C++ Compiler User’s Guide
Manual de CCS ( de 8 bits )