你有可能想到一種有效的方法來將BigInteger分成兩半,即如果數字是12345678,它將被分成1234?我在想,我可以將它改成一個字符串並使用子字符串,但我不確定這是否是最快的方法。拆分BigInteger,計數位數?
你是否也知道如何計算BigInteger中的位數?我知道你可以做一點點的長度和bitCount,但我認爲這是兩個補充。我試圖跟蹤我分裂他們的位置?
你有可能想到一種有效的方法來將BigInteger分成兩半,即如果數字是12345678,它將被分成1234?我在想,我可以將它改成一個字符串並使用子字符串,但我不確定這是否是最快的方法。拆分BigInteger,計數位數?
你是否也知道如何計算BigInteger中的位數?我知道你可以做一點點的長度和bitCount,但我認爲這是兩個補充。我試圖跟蹤我分裂他們的位置?
BigInteger bi = new BigInteger("12345678");
String numStr = bi.toString();
System.out.println(numStr.substring(0,numStr.length()/2));
有的問如何計算的小數位數在這裏二進制數:https://math.stackexchange.com/questions/3987/how-to-calculate-the-number-of-decimal-digits-for-a-binary-number
好像它的不平凡。所以很可能你必須轉換成字符串並從那裏開始工作。
轉換爲字符串可能是您最好的選擇,因爲它聽起來像是在尋找「文本」的半點和長度,這不是'數字'表示所提供的。
速度對您來說有多重要?如果它非常重要,我不會使用BigInteger,只需使用一個很長的。我懷疑簡單是你需要的。 –
選中此: - http://stackoverflow.com/questions/18828377/biginteger-count-the-number-of-decimal-digits-in-a-scalable-method – Avneesh