public float ReadUnitSingle(int numberOfBits) { uint encodedVal = ReadUInt32(numberOfBits); int maxVal = (1 << numberOfBits) - 1; return (float)(encodedVal + 1) / (float)(maxVal + 1); }