iTextSharp.text.pdf.qrcode.BitVector.AppendBits C# (CSharp) Метод

AppendBits() публичный Метод

public AppendBits ( int value, int numBits ) : void
value int
numBits int
Результат void
        public void AppendBits(int value, int numBits) {
            if (numBits < 0 || numBits > 32) {
                throw new ArgumentException("Num bits must be between 0 and 32");
            }
            int numBitsLeft = numBits;
            while (numBitsLeft > 0) {
                // Optimization for byte-oriented appending.
                if ((sizeInBits & 0x7) == 0 && numBitsLeft >= 8) {
                    int newByte = (value >> (numBitsLeft - 8)) & 0xff;
                    AppendByte(newByte);
                    numBitsLeft -= 8;
                }
                else {
                    int bit = (value >> (numBitsLeft - 1)) & 1;
                    AppendBit(bit);
                    --numBitsLeft;
                }
            }
        }

Usage Example

Пример #1
0
        private static void AppendNumericBytes(string content, BitVector bits)
        {
            var length = content.Length;
            var i      = 0;

            while (i < length)
            {
                var num1 = content[i] - '0';
                if (i + 2 < length)
                {
                    // Encode three numeric letters in ten bits.
                    var num2 = content[i + 1] - '0';
                    var num3 = content[i + 2] - '0';
                    bits.AppendBits(num1 * 100 + num2 * 10 + num3, 10);
                    i += 3;
                }
                else if (i + 1 < length)
                {
                    // Encode two numeric letters in seven bits.
                    var num2 = content[i + 1] - '0';
                    bits.AppendBits(num1 * 10 + num2, 7);
                    i += 2;
                }
                else
                {
                    // Encode one numeric letter in four bits.
                    bits.AppendBits(num1, 4);
                    i++;
                }
            }
        }
All Usage Examples Of iTextSharp.text.pdf.qrcode.BitVector::AppendBits