BigInteger.bitCount C# (CSharp) Method

bitCount() public method

public bitCount ( ) : int
return int
        public int bitCount()
        {
                while(dataLength > 1 && data[dataLength-1] == 0)
                        dataLength--;

               uint value = data[dataLength - 1];
               uint mask = 0x80000000;
               int bits = 32;

               while(bits > 0 && (value & mask) == 0)
               {
                        bits--;
                        mask >>= 1;
               }
               bits += ((dataLength - 1) << 5);

               return bits;
        }

Usage Example

Ejemplo n.º 1
0
        //формирование цифровой подписи.
        public string GenDs(byte[] h, BigInteger d)
        {
            var        a = new BigInteger(h);
            BigInteger e = a % _n;

            if (e == 0)
            {
                e = 1;
            }
            var        k = new BigInteger();
            BigInteger r;
            BigInteger s;

            do
            {
                do
                {
                    k.genRandomBits(_n.bitCount(), new Random());
                }while (k < 0 || k > _n);

                var c = EcPoint.Multiply(_g, k);
                r = c.X % _n;
                s = (r * d + k * e) % _n;
            }while (r == 0 || s == 0);

            string rvector = Padding(r.ToHexString(), _n.bitCount() / 4);
            string svector = Padding(s.ToHexString(), _n.bitCount() / 4);

            return(rvector + svector);
        }
All Usage Examples Of BigInteger::bitCount