Skip to content

Commit 615e860

Browse files
hansonrhansonr
authored andcommitted
BigInteger getLowestSetBit coding error for 24-bit int
1 parent c31b4f7 commit 615e860

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

sources/net.sf.j2s.java.core/src/java/math/BigInteger.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3473,7 +3473,7 @@ public int getLowestSetBit() {
34733473
int i,b;
34743474
for (i=0; (b = getInt(i)) == 0; i++)
34753475
;
3476-
lsb += (i * BITS_PER_INT) + Integer.numberOfTrailingZeros(b) - SPARE_BITS_INT;
3476+
lsb += (i * BITS_PER_INT) + Integer.numberOfTrailingZeros(b);
34773477
}
34783478
lowestSetBit = lsb + 2;
34793479
}

sources/net.sf.j2s.java.core/src/test/Test_BigInt.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ public class Test_BigInt extends Test_ {
88

99
public static void main(String[] args) {
1010

11+
BigInteger m = BigInteger.valueOf(4);
12+
m = m.modPow(BigInteger.valueOf(3), BigInteger.valueOf(8));
13+
System.out.println(m);
14+
//4^3 mod 8, 6^5 mod 2
1115
BigDecimal e = new BigDecimal("200.05");
1216
System.out.println(e);
1317
BigDecimal f = new BigDecimal(45000);

0 commit comments

Comments
 (0)