你有没有机会想到一个将BigInteger分成两半的有效方法,即如果数字是12345678,它会被分成1234?我在想我可以将它改成字符串并使用子字符串,但我不确定这是否是最快的方法。
您是否也知道如何计算BigInteger中的位数?我知道你可以做一点Length和bitCount,但我认为这些是两个补充。我想跟踪我拆分它们的位置?
答案 0 :(得分:3)
BigInteger bi = new BigInteger("12345678");
String numStr = bi.toString();
System.out.println(numStr.substring(0,numStr.length()/2));
答案 1 :(得分:1)
有人问如何计算二进制数中的小数位数:https://math.stackexchange.com/questions/3987/how-to-calculate-the-number-of-decimal-digits-for-a-binary-number
似乎并非无足轻重。所以你很可能必须转换为String并从那里开始工作。
答案 2 :(得分:1)
转换为String可能是你最好的选择,因为它听起来像是在寻找'文本'的半点和长度,这不是“数字”表示所提供的。