docs: public String toBitString() {
      StringBuffer sb = new StringBuffer();
      final int shift = this.bytes.length * 8 - this.bitLength;
      final byte[] shiftRight = shiftRight(this.bytes, shift);
      for (final byte b : shiftRight) {
        String asString = Integer.toBinaryString(b & 0xFF);
        while (asString.length() < 8) {
          asString = "0" + asString;
        }
        sb.append(asString);
      }
      if (sb.length() >= this.bitLength) {
        return sb.substring(sb.length() - this.bitLength, sb.length());
      }
      else {
        final String n = sb.toString();
        sb = new StringBuffer();
        while (sb.length() + n.length() < this.bitLength) {
          sb.append("0");
        }
        return sb + n;
      }
    }