La palabra de jerga que debe buscar es "serialización".
Es un problema interesante con respecto a una conexión serie que puede tener restricciones sobre qué caracteres pueden ir de extremo a extremo, y puede que no sea capaz de pasar ocho bits por carácter tampoco.
Las restricciones en ciertos códigos de caracteres son bastante comunes. Aquí están algunos fruto de la casualidad:
Si el control de flujo de software está en uso, entonces convencionalmente los caracteres de control DC1 y DC3 (Ctrl-Q y Ctrl-S, también llamado a veces XON y XOFF) no pueden ser transmitidos como datos porque se envían para iniciar y detener el remitente en el otro extremo del cable.
En algunos dispositivos, los caracteres NUL y/o DEL (0x00 y 0x7F) simplemente pueden desaparecer del FIFO del receptor.
Si el receptor es Unix tty, y los modos de termio no están configurados correctamente, el carácter Ctrl-D (EOT o 0x04) puede hacer que el controlador tty señale un final de archivo al proceso que tiene el tty abierto.
Una conexión en serie generalmente se puede configurar para el ancho de bytes y la posible inclusión de un bit de paridad. Algunas conexiones requerirán que se utilice un byte de 7 bits con paridad, en lugar de un byte de 8 bits. Incluso es posible la conexión al hardware heredado (muy viejo) para configurar muchos puertos serie para bytes de 5 y 6 bits. Si hay menos de 8 bits disponibles por byte, se requiere un protocolo más complicado para manejar los datos binarios.
ASCII85 es una técnica popular para evitar los datos de 7 bits y las restricciones en los caracteres de control. Es una convención para volver a escribir datos binarios utilizando solo 85 códigos de caracteres ASCII cuidadosamente seleccionados.
Además, ciertamente tiene que preocuparse por el orden de bytes entre el emisor y el receptor. También podría tener que preocuparse por el formato de punto flotante, ya que no todos los sistemas usan el punto flotante IEEE-754.
En pocas palabras, la mejor respuesta es elegir un protocolo ASCII puro. Tiene la ventaja de que puede ser entendido por un humano, y es mucho más resistente a los problemas con la conexión en serie. A menos que esté enviando montones de datos de punto flotante, la ineficacia de la representación puede ser compensada por la facilidad de implementación.
Sé liberal en lo que aceptas y conservador en lo que emites.
posible duplicado de [cómo dar salida a un int en binario?] (Http://stackoverflow.com/questions/3269767/how-to-output-an-int-in-binary) –