C/Visual C - Dividir short en char

 
Vista:

Dividir short en char

Publicado por Fede Diaz (2 intervenciones) el 07/11/2008 19:21:06
Hola, tengo un problema con el siguiente código:

unsigned short crc;
char crcBajo[8];
char crcAlto[8];

crc = 7ea6h;

Ahora lo que tengo que hacer es el crc en hexádecimal dividir en su parte alta de bits más significativos y baja de menos en los dos char declarados al efecto. Por más vueltas que le doy no me sale.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dividir short en char

Publicado por xae (5 intervenciones) el 08/11/2008 21:24:31
Con operadores a nivel de bit,

unsigned short crc = 0x7ea6;
unsigned char crcBajo = crc & 0x00ff;
unsigned char crcAlto = (crc & 0xff00) >> 8;

de otra forma, utilizando una union,

union crc_union {
unsigned short value;
struct {
unsigned char low;
unsigned char high;
} byte;
} crc;

...

crc.value = 0x7ea6;

/* crc.byte.low = 0xa6, crc.byte.high = 0x7e */
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dividir short en char

Publicado por Fede Diaz (2 intervenciones) el 09/11/2008 19:53:57
OK, gracias. Ha funcionado perfectamente. He usado la primera opción.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar