java - Java:将 BigInteger 的绝对值转换为 intValue() 结果为负值
问题描述
我正在尝试进行 BigInteger 指数计算。对于我的计算,我试图从 m2 中减去 m1(两者都是 BigInteger)并得到一个正值,但是如果我将这个正数转换为一个 int 数,我最终会得到一个负值。
BigInteger m1 = new BigInteger("2905012217");
BigInteger m2 = new BigInteger("534500746");
int exp = m2.subtract(m1).abs().intValue();
System.out.println(exp);
BigInteger g1 = new BigInteger("2");
BigInteger output_test_g1 = g1.pow(exp);
输出:
m1:2905012217
m2:534500746
exp:-1924455825
错误:
Exception in thread "main" java.lang.ArithmeticException: Negative exponent
at java.base/java.math.BigInteger.pow(BigInteger.java:2401)
at FHEv1.homomorphicEqualityTest(FHEv1.java:195)
at FHEv1.main(FHEv1.java:323)
解决方案
太高溢出到必要时Integer.MIN_VALUE
继续计数。太低了,Integer.MAX_VALUE
如果需要,请继续计数。
例如,
int A = Integer.MAX_VALUE;
A++;
//A should be Integer.MIN_VALUE, correct me if I am wrong
推荐阅读
- electron - 不能在带有 TypeScript Create React App 和预加载脚本的 Electron 中使用`require`
- java - OptaPlanner:二维问题,只检查一维的所有组合
- html - 一旦我将其包装在 div 中,图像就会消失
- wordpress - 如果相同,则结合 woocommerce 购物车选项
- node.js - 减少 node_module 文件夹中的文件(或依赖项)数量
- python - 在 ROS 中发布函数中计算的值
- django - 我可以在 django rest 框架中为单个模型有多个视图和序列化器吗
- php - mysqli_multi_qry 在再次调用之前等待查询的输出
- python - Python 请求没有得到指定参数的正确页面
- r - 有没有办法用 ggplot2 做一个多堆栈条形图?