/**************************************************/
/* Swap the order of bytes in a short             */
/**************************************************/
void swap_short_bytes(short *x)
{
unsigned char t;

union union_type
{
short y;
unsigned char z[2]; 
} union_value;

union_value.y = *x;
t=union_value.z[0];
union_value.z[0]=union_value.z[1];
union_value.z[1]=t;
*x = union_value.y;
}

/**************************************************/
/* Swap the order of bytes in a integer           */
/**************************************************/
void swap_int_bytes(int *x)
{
unsigned char t;

union union_type
{
int y;
unsigned char z[4]; 
} union_value;

union_value.y = *x;
t=union_value.z[0];
union_value.z[0]=union_value.z[3];
union_value.z[3]=t;
t=union_value.z[1];
union_value.z[1]=union_value.z[2];
union_value.z[2]=t;
*x = union_value.y;
}

/**************************************************/
/* Swap the order of bytes in a float             */
/**************************************************/
void swap_float_bytes(float *x)
{
unsigned char t;

union union_type
{
float y;
unsigned char z[4]; 
} union_value;

union_value.y = *x;
t=union_value.z[0];
union_value.z[0]=union_value.z[3];
union_value.z[3]=t;
t=union_value.z[1];
union_value.z[1]=union_value.z[2];
union_value.z[2]=t;
*x = union_value.y;
}


