public ReadFloatWord ( uint mantissaSize, uint fractionSize ) : float | ||
mantissaSize | uint | Size of the mantissa. |
fractionSize | uint | Size of the fraction. |
return | float |
public float ReadFloatWord(uint mantissaSize, uint fractionSize)
{
int mantissa = 0;
int fraction = 0;
float value = 0;
float divisor = (float)(1 << (int)fractionSize);
fraction = (int)ReadUBits(fractionSize);
mantissa = (int)ReadSBits(mantissaSize);
mantissa <<= (int)fractionSize;
value = (mantissa + fraction) / divisor;
return value;
}
/// <summary> /// Reads the data from a binary file /// </summary> /// <param name="binaryReader">Binary reader.</param> public void ReadData(BufferedBinaryReader binaryReader) { this.signature = binaryReader.ReadString(3); this.version = binaryReader.ReadByte(); if (this.version > MAX_VERSION) throw new InvalidSwfVersionException(this.version, MAX_VERSION); this.fileSize = binaryReader.ReadUInt32(); this.rect = new Rect(); this.rect.ReadData(binaryReader); binaryReader.SynchBits(); this.fps = binaryReader.ReadFloatWord(8, 8); this.frames = binaryReader.ReadUInt16(); }