internal void WriteNumeric(HtmlBufferWriter writer, uint number) { const byte AsciiDigitStart = (byte)'0'; if (number < 10) { writer.Write((byte)(number + AsciiDigitStart)); } else if (number < 100) { var tens = (byte)((number * 205u) >> 11); // div10, valid to 1028 var span = new byte[2]; span[0] = (byte)(tens + AsciiDigitStart); span[1] = (byte)(number - (tens * 10) + AsciiDigitStart); writer.Write(span, 0, 2); } else if (number < 1000) { var digit0 = (byte)((number * 41u) >> 12); // div100, valid to 1098 var digits01 = (byte)((number * 205u) >> 11); // div10, valid to 1028 var span = new byte[3]; span[0] = (byte)(digit0 + AsciiDigitStart); span[1] = (byte)(digits01 - (digit0 * 10) + AsciiDigitStart); span[2] = (byte)(number - (digits01 * 10) + AsciiDigitStart); writer.Write(span, 0, 3); } }
public HtmlBufferWriter GetHtmlBufferWriter() { if (mHtmlBufferWriter == null) { mHtmlBufferWriter = new HtmlBufferWriter(2048); } return(mHtmlBufferWriter); }