bgu*_*uiz 0 java math largenumber bit-shift
编码2的幂的最有效方法是通过整数的位移.
1 << n 给我 2^n
但是,如果我的数字大于inta或a中允许的最大值long,我可以用什么来有效地操纵2的幂?
(我需要能够对数字执行加法,乘法,除法和模数运算)
这是你需要的吗?
BigInteger hugeNumber = BigInteger.ONE.shiftLeft(n);
Run Code Online (Sandbox Code Playgroud)
这是n = 1000时的结果,
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
Run Code Online (Sandbox Code Playgroud)