2011-11-02 24 views
1

你有可能想到一種有效的方法來將BigInteger分成兩半,即如果數字是12345678,它將被分成1234?我在想,我可以將它改成一個字符串並使用子字符串,但我不確定這是否是最快的方法。拆分BigInteger,計數位數?

你是否也知道如何計算BigInteger中的位數?我知道你可以做一點點的長度和bitCount,但我認爲這是兩個補充。我試圖跟蹤我分裂他們的位置?

+0

速度對您來說有多重要?如果它非常重要,我不會使用BigInteger,只需使用一個很長的。我懷疑簡單是你需要的。 –

+0

選中此: - http://stackoverflow.com/questions/18828377/biginteger-count-the-number-of-decimal-digits-in-a-scalable-method – Avneesh

回答

3
BigInteger bi = new BigInteger("12345678"); 
    String numStr = bi.toString(); 
    System.out.println(numStr.substring(0,numStr.length()/2)); 
1

轉換爲字符串可能是您最好的選擇,因爲它聽起來像是在尋找「文本」的半點和長度,這不是'數字'表示所提供的。