/// <summary> /// Reads a double from an array of bytes. /// </summary> /// <param name="addr">A value index, aka address.</param> /// <returns>A double value.</returns> public float ReadFloat(int addr) { var mem = Items; var fp = new SingleCellFloatingPointValue(); fp.A = (int)mem[addr++]; fp.A |= (int)mem[addr++] << 8; fp.A |= (int)mem[addr++] << 16; fp.A |= (int)mem[addr] << 24; return(fp.F); }
/// <summary> /// Writes a double value to an address. /// </summary> /// <param name="addr">A value index, aka address.</param> /// <param name="value">A value.</param> public void Write(int addr, float value) { var mem = Items; var fp = new SingleCellFloatingPointValue() { F = value }; mem[addr++] = (byte)(fp.A); mem[addr++] = (byte)(fp.A >> 8); mem[addr++] = (byte)(fp.A >> 16); mem[addr] = (byte)(fp.A >> 24); }