关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。
上个月关门了。
改进这个问题
我得到了一个任务,我需要写一个代码,将二进制数转换成十进制数在 String
. 主要的问题是二进制位的长度可以是 Integer.MAX_VALUE
(意思是一行中数字1的2^31倍),我不能使用 BigInteger
.
我知道将二进制数转换成十进制数的算法,但我不知道如何将“1111….111”(最多33次)转换成十进制数。
2条答案
按热度按时间yeotifhr1#
大整数使用
import java.math.BigInteger;
图书馆。在十进制中转换decimal=Integer.parseInt(binaryString,2);
exdqitrt2#
让我们来解开你的问题,因为它有两个部分。
二进制位长度可以和integer.max\u值一样长(这意味着一行中数字1的2^31倍),我不能使用biginteger。
出于上述考虑,我建议你到这里来看看。现在,我已经为你做了谷歌搜索。既然你说你知道转换的算法,为什么不继续计算任何字符串在转换成数字时可能出现的最大值,并试着找出java中什么数字类型可以容纳这个值呢。当然,这是假设您可以返回任何数字类型的十进制数。
关于算法,下面是问题的第二部分:
我知道将二进制数转换成十进制数的算法,但我不知道如何将“1111….111”(最多33次)转换成十进制数。
我们就是这样开始的。。。不知道怎么写代码!我建议一个
for
循环可以方便地解析所提供的string
,但这是我现在给你的最重要的提示。试着找出答案,写一些代码,如果你想的话,在网上做更多的搜索(尽管写代码的过程会更快,也会拉伸你的大脑肌肉!)。还是卡住了?回来,我们再讨论。但是,有一些代码可以显示!