…why would you use a float for a bitmask?! That’s so weird. Just use an int32. It’s way easier and safer to do bitmask comparisons.
If you’re worried about cross platform stuff, the only possible gotcha could be the big endian vs little endian ordering of bytes, but if you already know which platforms you’re going to deploy to ahead of time, you would already know if that’s going to be an issue or not.