0

This is a conversion question that has me stumped. I need to convert an unsigned char to a signed float. Some examples:
0xFF becomes 1.0f
0x00 becomes -1.0f
0x80 becomes ~0.0f
The only idea that I could come up with was a massive switch statement. But a switch statement will be slow and I need this to run fast. Any ideas?

3
Contributors
2
Replies
3
Views
6 Years
Discussion Span
Last Post by ddanbe
0

An unsigned char is just a regular unsigned integer going from 0 to 255. Just interpret it as a regular "number" and map 0 to -1.0 and 255 to 1.0 with a simple linear mapping:

unsigned char u;
  float f;
  f = float(u) / 127.5 - 1.0;

Edited by mike_2000_17: n/a

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.