How does Blender output texture data?

I am wondering how Blender numerically handles color information from a texture.
I have a texture that mixes two alphas onto one channel, and need to separate out the two alphas using Math functions. I am running under the assumption that blender uses floats between 0.0 and 1.0 to represent its value. The first alpha represents the transparency and its between 0.0 and 0.5 in value. I multiply the alpha by 2 in order to get the correct values. The second alpha represents specular value and its values are between 0.5 and 1.0. I multiply the alpha by 2 and subtract 1 in order to get the correct values.

The reason I need to know how Blender numerically handles the channel data is so I can correctly get the alphas value to take the full range. Right now something does not seem right. For my transparency I multiply it by 2 and get some transparent parts. When I multiply it by 2.5 its working fine. I am not sure if its the actual texture that’s the issue or how Blender handles the texture data.