/// <summary> /// Writes a signed 16 bit integer /// </summary> public BitWriter Write(Int16 source) { EnsureBufferSize(_lengthBits + 16); BitReaderWriter.WriteUInt16((ushort)source, 16, _data, _lengthBits); _lengthBits += 16; return(this); }
/// <summary> /// Writes an unsigned integer using 1 to 16 bits /// </summary> public BitWriter Write(UInt16 source, int numberOfBits) { BitBufferException.Assert((numberOfBits > 0 && numberOfBits <= 16), "Write(ushort, numberOfBits) can only write between 1 and 16 bits"); EnsureBufferSize(_lengthBits + numberOfBits); BitReaderWriter.WriteUInt16(source, numberOfBits, _data, _lengthBits); _lengthBits += numberOfBits; return(this); }
/// <summary> /// Writes a 16 bit signed integer at a given offset in the buffer /// </summary> public BitWriter WriteAt(Int32 offset, Int16 source) { int newBitLength = Math.Max(_lengthBits, offset + 16); EnsureBufferSize(newBitLength); BitReaderWriter.WriteUInt16((ushort)source, 16, _data, offset); _lengthBits = newBitLength; return(this); }