如何将BigInteger除以整数?

时间:2016-07-16 05:18:48

标签: java int biginteger

(编辑:在更多人投票之前,我确实事先看过Javadoc,但由于我是初学者,我不确定文件中的哪个部分要看。请参阅我对Jim G的回复,发布在下面。我我知道这个问题可能被认为太基础了。但我认为在我的情况下,它对其他初学者有一定的价值。所以请在初学者的观点之前考虑完整情况。)

我想将BigInteger除以常规整数(即int),但我不知道如何做到这一点。我在Google和Stack Exchange上进行了快速搜索,但未找到任何答案。

那么,我怎样才能将BigInteger除以int?虽然我们正在努力,但我如何将BigInts添加/减去整数,将BigInts与整数进行比较等等?

2 个答案:

答案 0 :(得分:4)

只需使用BigInteger.valueOf(long)工厂方法即可。 int可以隐含地加宽"要长...从小到大的情况总是如此,例如: byte => short,short => int,int =>长。

BigInteger bigInt = BigInteger.valueOf(12);
int regularInt = 6;

BigInteger result = bigInt.divide(BigInteger.valueOf(regularInt));

System.out.println(result); // => 2

答案 1 :(得分:-2)

Integer转换为BigInteger,然后将BigInteger分开,如下所示:

BigInteger b = BigInteger.valueOf(10);
int x = 6;

//convert the integer to BigInteger.

BigInteger converted = new BigInteger(Integer.toString(x));
//now you can divide, add, subtract etc.

BigInteger result = b.divide(converted);  //but this will give you Integer values.

System.out.println(result);

result = b.add(converted);

System.out.println(result);

上述部门会为您提供Integer分部值,要获得准确的值,请使用BigDecimal

修改

要删除上述代码中的两个中间变量convertedresult

BigInteger b = BigInteger.valueOf(10);
int x = 6;

System.out.println(b.divide(new BigInteger(Integer.toString(x))));

Scanner in = new Scanner(System.in);
System.out.println(BigInteger.valueOf((in.nextInt())).divide(new   BigInteger(Integer.toString(in.nextInt()))));