当前位置:  开发笔记 > 编程语言 > 正文

我编写了这个程序来查找给定输入是否为2的幂,该程序没有运行非常大的数字,例如10 ^ 18左右.我该怎么办

如何解决《我编写了这个程序来查找给定输入是否为2的幂,该程序没有运行非常大的数字,例如10^18左右.我该怎么办》经验,为你挑选了1个好方法。



1> dasblinkenli..:

问题是10 18超出了Java的范围int,它存储的数字最多为2 31 -1,或大约2*10 9.您可以通过使用扩展程序的范围long在地方int接受数高达9*10 18,或使其通过接受几乎无限的范围BigInteger:

BigInteger n = new BigInteger(numericString);
BigInteger test = n.and(n.subtract(BigInteger.ONE));
if (test.equals(BigInteger.ZERO)) {
    ...
}

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有