Hola,
estoy trabajando con un software embebido en hardware mínimo que solo soporta ANSI C y tiene versiones mínimas de las bibliotecas standard IO.
Tengo una variable Int, de dos bytes de tamaño, pero necesito dividirla en 2 bytes por separado para poder transmitirlo, y luego poder, leyendo los dos bytes, volver a armar el Int original.
A mi se me ocurre alguna división binaria de cada byte como esta:
int valor = 522; // 0000 0010 0000 1010 (entero de 2 bytes)
byte superior = byteSuperior(valor); // 0000 0010
byte inferior = byteInferioror(valor); // 0000 1010
...
int valorRestaurado = bytesToInteger(superior, inferior); // 522
pero no acierto a una forma simple de dividir el entero por su peso y me da la sensación de que debería ser trivial (como por ejemplo con corrimiento de bits) y no lo descubro.
En realidad, cualquier solución que divida al entero en 2 bytes y lo vuelva a armar me sirve.
Desde ya, muchas gracias!