public override float ReadSingle()
        {
            FillBuffer(4);

            fixed(byte *p = buffer)
            return(Reinterpret.Int32AsFloat(BigEndian.ReadInt32(p)));
        }
        public override void Write(float value)
        {
            fixed(byte *p = buffer)
            BigEndian.WriteDecimal(p, Reinterpret.FloatAsInt32(value));

            OutStream.Write(buffer, 0, 4);
        }
        public override double ReadDouble()
        {
            FillBuffer(8);

            fixed(byte *p = buffer)
            return(Reinterpret.Int64AsDouble(BigEndian.ReadInt64(p)));
        }
        public override void Write(double value)
        {
            fixed(byte *p = buffer)
            BigEndian.WriteInt64(p, Reinterpret.DoubleAsInt64(value));

            OutStream.Write(buffer, 0, 8);
        }