Converting unsigned to signed

Slappy:
I am trying to estimate angular position from an external sensor. If I have, for example, some large signed integer, 0000000010100000, then I want to convert that to 160 using the 'scale' multiplier. phi_data is supposed to contain the signed integer value, ready for float conversion. The idea was to read two unsigned values serially, perform bit-shift operations to concatenate them together to form one single value (phi_data), then convert that unsigned value to a signed value. Last, that signed value would be converted to a signed floating-point value (phi.data).

The reason I have the struct is because phi.data, theta.data and psi.data all need to be global values, as they will be used in multiple functions.

I'm sorry, I don't understand any of that. You want to do what?

some large signed integer, 0000000010100000

Are we talking binary here?

using the 'scale' multiplier

What?