java - 将 BigInteger 钳位为 long

标签 java

有没有办法将 Java BigInteger 转换为 long,并将其限制在 long 的范围内?我的意思是,如果它大于 Long.MAX_VALUE 或小于 Long.MIN_VALUE,请使用这些边缘值,否则使用精确值。

最佳答案

我最终使用了这个自定义函数:

public static long clampToLong(BigInteger val) {
    if (val.bitLength() <= 63) {
        return val.longValue();
    }
    return val.signum() == 1 ? Long.MAX_VALUE : Long.MIN_VALUE;
}

关于java - 将 BigInteger 钳位为 long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50505711/

相关文章:

java - 客户端程序响应http请求

java - 我的 SQL 语法错误

java - 方法调用计数断言

javascript - 如何通过检查元素找到文件的位置?

java - 如何确保 Java 对象(包含加密 Material )被归零?

java - Apache Camel DynamicRouter - 从 bean 方法返回 null 后仍然路由

java - Android默认白色背景十六进制代码

java - react excel 文件下载损坏

java - 使用集合框架删除重复值

java - 我在运行前初始化 TextView,因为 View 尚未设置