在Java中,如何不使用BigInteger计算基数为2的数字的任意幂?

在Java中,如何不使用BigInteger计算基数为2的数字的任意幂?,java,binary,Java,Binary,如何在Java中计算基数为2的数字的任意幂(2^n,其中n可以是任意数字),而不使用biginger类 假设我得到了存储在给定数组中的二进制数1000000000000100000000001,我想用十进制数打印它的值(只是为了打印它,假设我们将它存储在字符串类型中)。我不确定我是否完全理解您的问题,但是如果n是转换为十进制数的二进制数,那你玩的数字太大了 将二进制数视为十进制数。您的示例是十进制数4294969345。试着想想2 ^ 4294969345会是什么。例如,2^429将是1.386

如何在Java中计算基数为2的数字的任意幂(2^n,其中n可以是任意数字),而不使用
biginger


假设我得到了存储在给定数组中的二进制数1000000000000100000000001,我想用十进制数打印它的值(只是为了打印它,假设我们将它存储在字符串类型中)。

我不确定我是否完全理解您的问题,但是如果n是转换为十进制数的二进制数,那你玩的数字太大了

将二进制数视为十进制数。您的示例是十进制数4294969345。试着想想2 ^ 4294969345会是什么。例如,2^429将是1.38633485×10^129。你不可能做到这一点

我同意其他人的观点,请分享你们的代码,也许你们能得到更好的答案


编辑:如果只是从大二进制数到小数的转换,可以使用Long.parseLong(binaryNumber,2),其中binaryNumber是作为字符串的二进制数。

值需要保存在某个地方以便“打印”,无论是数据结构还是基元,在您的情况下,它对于整数(>2^31)来说太大了,您可以使用long代替
(long.parseLong(binary,2))
,但最终如果它继续变大,您将需要另一种方法,要么使用
biginger
,要么使用您自己的大脑。

显示您的代码please@imraklr我在询问关于如何计算/解决给定问题的想法,我想不出解决方案,所以我没有工作代码。。。我只是想了解解决方案的方向。我的问题是,我想打印一个非常大的二进制数的值——比如说数字:1000000000000000000100000000001,我想打印它的十进制值,但是如果不使用BigInteger类,我怎么能做到呢?