lowestSetBit property

int lowestSetBit

Implementation

int get lowestSetBit {
  if (isSafeInteger) {
    var n = toInt();
    var bits = n.bitLength;

    for (var i = 0; i < bits; ++i) {
      var b = n & 0x1;
      if (b != 0) {
        return i;
      }
      n = n >> 1;
    }
    return bits;
  } else {
    var n = toBigInt();
    var bits = n.bitLength;

    for (var i = 0; i < bits; ++i) {
      var b = n & BigInt.one;
      if (b != BigInt.one) {
        return i;
      }
      n = n >> 1;
    }
    return bits;
  }
}