Esempio n. 1
0
File: Heap.cs Progetto: enif77/EFrt
        /// <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);
        }
Esempio n. 2
0
File: Heap.cs Progetto: enif77/EFrt
        /// <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);
        }