for (int i = 1; i < max; i++) {
BigInteger value = BigInteger.valueOf(2).pow(i);
int bits = i + 1;
NumWithInfo underflow = new NumWithInfo(value.negate().subtract(BigInteger.ONE), bits, true, NumWithInfo.UNDERFLOW);
NumWithInfo bottom = new NumWithInfo(value.negate(), bits, true, NumWithInfo.NORMAL);
NumWithInfo nearBottom = new NumWithInfo(value.negate().add(BigInteger.ONE), bits, true, NumWithInfo.NORMAL);
NumWithInfo nearTop = new NumWithInfo(value.subtract(BigInteger.valueOf(2)), bits, false, NumWithInfo.NORMAL);
NumWithInfo top = new NumWithInfo(value.subtract(BigInteger.ONE), bits, false, NumWithInfo.NORMAL);
NumWithInfo overflow = new NumWithInfo(value, bits, false, NumWithInfo.OVERFLOW);