java - Java 128 位融合乘除法 - 有没有有效的算法?
问题描述
(a * b) / c
我有一个非常具体的算法,需要在 Java 中进行大量计算,其中:
a
并且b
是 64 位长a*b
可能会溢出到 128 位(并非总是如此,但至少相当常见)c
是 64 位长- 结果
(a * b) / c
应该适合 64 位长(我们需要检测它是否溢出,但在这种情况下结果无关紧要)
有没有一种有效的算法来做这种融合的乘除法?我自然地尝试使用BigInteger
which 工作正常但速度慢得令人无法接受(这需要是高性能代码)。
解决方案
推荐阅读
- python - 任务无法取消序列化
- javascript - 如何在不编写指令的情况下使用 angularjs 在外部单击时隐藏 div
- java - 为私有静态内部类注入bean
- wpf - 如果 HorizontalContentAlignment="Right",WPF TexBox 不会关注鼠标单击
- kubernetes - 同时运行两个 Kubernetes 仪表板
- assembly - 如何在 2 列中显示交替的文本行?
- sql-server - 两个表的多内连接
- r - 无法获取带有边界框的谷歌卫星图像
- reactjs - 使用 jest 和酶进行测试时,在单击事件中不调用模拟函数
- typescript - 如何推断对象属性的类型