¿Cómo convierto un entero de 24 bits en una matriz de 3 bytes?

Hola, estoy totalmente fuera de mi profundidad y mi cerebro está empezando a doler .. :(

Necesito convertir un número entero para que quepa en una matriz de 3 bytes (¿es un int 24bit?) Y luego volver para enviar / recibir este número desde un flujo de bytes a través de un socket

Yo tengo:

NSMutableData* data = [NSMutableData data];

 int msg = 125;

 const void *bytes[3];

 bytes[0] = msg;
 bytes[1] = msg >> 8;
 bytes[2] = msg >> 16;

 [data appendBytes:bytes length:3];

 NSLog(@"rtn: %d", [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] intValue]);

 //log brings back 0

Supongo que mi principal problema es que no sé cómo verificar que efectivamente he convertido mi int correctamente, que es la conversión que debo hacer también para enviar los datos.

Cualquier ayuda muy apreciada!

Respuestas a la pregunta(3)

Su respuesta a la pregunta