public virtual int Degree() { int deg = 0; for (int i = dataBits.Length - 1; i >= 0; i--) { long word = dataBits[i]; if (word != 0L) { for (int bit = BITS - 1; bit >= 0; bit--) { if ((word & (1L << bit)) != 0) { deg++; } } } } return deg; }