?? biginteger.java
字號:
} } private static final String USD_HASH = "2d0a96ecc3bef46309b2f753a804f9d9"; private static final String TMP_STR1 = "d0a96ecc3bef46309b2f753a804f9d9"; private static final String TMP_STR2 = "0d0a96ecc3bef46309b2f753a804f9d9"; private static final String TMP_STR3 = "1d0a96ecc3bef46309b2f753a804f9d9"; private static final String TMP_STR4 = "1d0a96ecc3bef46309b2f753a804f9d"; public static void self_test(PrintStream out, String argv[]) throws Exception { BigInteger i = new BigInteger(0x7fffffff); out.println( "Displaying 0x7fffffff: " + i.toString() + " / " + i.bitLength()); i.inc(); out.println( "Adding one: " + i.toString() + " / " + i.bitLength()); i.inc(); out.println( "Adding one: " + i.toString() + " / " + i.bitLength()); BigInteger a = new BigInteger(0x7fffffff); BigInteger b = new BigInteger(0x7fffffff); BigInteger r = new BigInteger(); add(r, a, b); out.println( "add: " + r.toString() + " / " + r.bitLength()); add(r, r, a); out.println( "add: " + r.toString() + " / " + r.bitLength()); sub(r, r, a); out.println( "sub: " + r.toString() + " / " + r.bitLength()); a.fromString("ffffffffffffffff"); b.fromString("ffffffffffffffff"); add(r, a, b); out.println(a.toString() + " + " + b.toString() + " = " + r.toString() + " / " + r.bitLength()); a.copy(r); sub(r, a, b); out.println(a.toString() + " - " + b.toString() + " = " + r.toString() + " / " + r.bitLength()); a = new BigInteger(0x3); b = new BigInteger(0x3); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(0x17); b = new BigInteger(0x17); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(0x7f); b = new BigInteger(0x7f); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(0x7ff); b = new BigInteger(0x7ff); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(0x7fff); b = new BigInteger(0x7fff); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(0x7ffff); b = new BigInteger(0x7ffff); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(0x7fffff); b = new BigInteger(0x7fffff); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(r); b = new BigInteger(r); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(0x7fffffff); b = new BigInteger(0x7fffffff); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(r); b = new BigInteger(r); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a.copy(r); mul(r, a, a); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a.copy(r); mul(r, a, a); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(0x8000); b = new BigInteger(0x8000); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(0x80000); b = new BigInteger(0x80000); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(0x800000); b = new BigInteger(0x800000); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(r); b = new BigInteger(r); mul(r, a, b); out.println( "mul: " + r.toString() + " / " + r.bitLength()); r = new BigInteger(1); r.shiftLeft(1); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftLeft(2); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftLeft(4); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftLeft(61); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftLeft(62); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftLeft(63); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftLeft(64); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftRight(1); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftRight(2); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftRight(4); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftRight(61); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftRight(62); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftRight(63); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftRight(64); out.println("shift: " + r.toString() + " / " + r.bitLength()); a.fromString("2d0a96ecc3bef46309b2f753a804f9d9"); b.fromString("1d0a96ecc3bef46309b2f753a804f9d"); mul(r, a, b); out.println(a.toString() + " * " + b.toString() + " = " + r.toString() + " / " + r.bitLength()); BigInteger dv = new BigInteger(); BigInteger rem = new BigInteger(); r.copy(a); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftLeft(124); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftRight(1); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftRight(1); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftRight(1); out.println("shift: " + r.toString() + " / " + r.bitLength()); r.shiftRight(1); out.println("shift: " + r.toString() + " / " + r.bitLength()); a.fromString("2d0a96ecc3bef46309b2f753a804f9d9"); b.fromString("1d0a96ecc3bef46309b2f753a804f9d"); mul(r, a, b); out.println(a.toString() + " * " + b.toString() + " = " + r.toString() + " / " + r.bitLength()); div(dv, rem, r, a); out.println( "div = " + dv.toString() + " / " + dv.bitLength()); out.println( "rem = " + rem.toString() + " / " + rem.bitLength()); div(dv, rem, r, b); out.println( "div = " + dv.toString() + " / " + dv.bitLength()); out.println( "rem = " + rem.toString() + " / " + rem.bitLength()); out.println("shift: " + r.toString() + " / " + r.bitLength()); out.println("stuff"); dv.fromString("1d0a96ecc3bef46309b2f753a804f9d"); dv.shiftLeft(126); out.println( "cmp = " + cmp(r,dv)); dv.shiftRight(1); out.println( "cmp = " + cmp(r,dv)); out.println("stuff"); BigInteger z = BigInteger.zero; r = new BigInteger(0); dec(r); out.println("dec (-1): " + r.toString() + " / " + r.bitLength()); r = new BigInteger(10); dec(r); dec(r); dec(r); out.println("dec (-1): " + r.toString() + " / " + r.bitLength()); dec(r); dec(r); dec(r); out.println("dec (-1): " + r.toString() + " / " + r.bitLength()); dec(r); dec(r); dec(r); out.println("dec (-1): " + r.toString() + " / " + r.bitLength()); dec(r); dec(r); dec(r); out.println("dec (-1): " + r.toString() + " / " + r.bitLength()); dec(r); dec(r); dec(r); out.println("dec (-1): " + r.toString() + " / " + r.bitLength()); dec(r); dec(r); dec(r); out.println("dec (-1): " + r.toString() + " / " + r.bitLength()); a = new BigInteger(76543); b = new BigInteger(2); div(r, null, a, b); out.println("div: " + r.toString() + " / " + r.bitLength()); out.println("cmp: " + r.cmp(z)); out.println("ucmp: " + ucmp(a, b)); out.println("a len: " + a.bitLength()); out.println("b len: " + b.bitLength()); BigInteger ds = new BigInteger(); out.println("b: " + b.toString() + " / " + b.bitLength()); shiftLeft(ds, b, 1); out.println("ds: " + ds.toString() + " / " + ds.bitLength()); out.println("b: " + b.toString() + " / " + b.bitLength()); shiftLeft(ds, b, 1); out.println("ds: " + ds.toString() + " / " + ds.bitLength()); out.println("b: " + b.toString() + " / " + b.bitLength()); shiftLeft(ds, b, 1); out.println("ds: " + ds.toString() + " / " + ds.bitLength()); out.println("b: " + b.toString() + " / " + b.bitLength()); shiftLeft(ds, b, 2); out.println("ds: " + ds.toString() + " / " + ds.bitLength()); out.println("b: " + b.toString() + " / " + b.bitLength()); shiftLeft(ds, b, 5); out.println("ds: " + ds.toString() + " / " + ds.bitLength()); out.println("b: " + b.toString() + " / " + b.bitLength()); shiftLeft(ds, b, 5); out.println("ds: " + ds.toString() + " / " + ds.bitLength()); out.println("b: " + b.toString() + " / " + b.bitLength()); shiftLeft(ds, b, 15); out.println("ds: " + ds.toString() + " / " + ds.bitLength()); out.println("cmp: " + r.cmp(ds));// for (; i>= 0; --i)// {// if (cmp(r, ds) >= 0)// sub(r, r, ds);// shiftRightOnce(ds, ds);// } a = new BigInteger(76543); b = new BigInteger(2); mod(r, a, b); out.println("mod: " + r.toString() + " / " + r.bitLength()); out.println("cmp: " + r.cmp(z)); a = new BigInteger(34567); b = new BigInteger(13); mod(r, a, b); out.println("mod: " + r.toString() + " / " + r.bitLength()); out.println("cmp: " + r.cmp(z)); out.println("cmp: " + r.cmp(z)); out.println("cmp: " + r.cmp(BigInteger.zero)); out.println("cmp: " + r.cmp(z)); out.println("cmp: " + z.cmp(r)); display(out, r); display(out, z); r = BigInteger.zero; out.println("zero: " + r.toString() + " / " + r.bitLength()); out.println("zero: " + BigInteger.zero.toString() + " / " + BigInteger.zero.bitLength()); a = new BigInteger(15); b = new BigInteger(27); gcd(r, a, b); out.println("gcd: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(13); b = new BigInteger(500); gcd(r, a, b); out.println("gcd: " + r.toString() + " / " + r.bitLength()); a = new BigInteger(79); b = new BigInteger(3220); inverseModN(r, a, b); out.println("inv: " + r.toString() + " / " + r.bitLength()); test(out, USD_HASH); test(out, TMP_STR1); test(out, TMP_STR2); test(out, TMP_STR3); test(out, TMP_STR4); } private static void test(PrintStream out, String testStr) { BigInteger i = new BigInteger(); i.fromString( testStr ); out.println( " Test: " + testStr ); out.println( " big int " + i.toString() ); i.fromString( i.toString() ); out.println( " restored " + i.toString() ); }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -