查找 BigInteger(msb) 的最高有效位的 N 位

Find N bits of most significant bit of a BigInteger(msb)

我想找到 BigInteger 的 n 位最高有效位并且 return 它是字节类型。 这是我的家庭作业,我知道很少有人考虑它。 请帮助我解决it.its 对我来说非常必要。 这是必须实现的方法:

 /**
     * *
     * Gets N numbers of bits from the MOST SIGNIFICANT BIT (inclusive).
     *
     * @param value Source from bits will be extracted
     * @param n The number of bits taken
     * @return The n most significant bits from value
     */
    private byte msb(BigInteger value, int n) {

        return 0x000;
    }

你可以试试bitLength()java.math.BigInteger里面returns的位数。您可以使用此方法检索 n 最高有效位,如:

    int n = 3;
    BigInteger r = BigInteger.valueOf(23);
    BigInteger f = r.shiftRight(r.bitLength() - n);
    Byte result = Byte.valueOf(f.toString());
    System.out.println(result);

这会按预期打印 5