public BigInteger (int signum, byte [] magnitude, int off, int len)

Translates the sign-magnitude representation of a BigInteger into a
BigInteger. The sign is represented as an integer signum value: -1 for
negative, 0 for zero, or 1 for positive. The magnitude is a sub-array of
a byte array in *big-endian* byte-order: the most significant byte
is the element at index ` off`

. A zero value of the length
` len`

is permissible, and will result in a BigInteger value of 0,
whether signum is -1, 0 or 1. The ` magnitude`

array is assumed to
be unchanged for the duration of the constructor call.
An ` IndexOutOfBoundsException`

is thrown if the length of the array
` magnitude`

is non-zero and either ` off`

is negative,
` len`

is negative, or ` off+len`

is greater than the length of
` magnitude`

.

`signum` | signum of the number (-1 for negative, 0 for zero, 1 for positive). | |

`magnitude` | big-endian binary representation of the magnitude of the number. | |

`off` | the start offset of the binary representation. | |

`len` | the number of bytes to use. |

`NumberFormatException` | ` signum` is not one of the three
legal values (-1, 0, and 1), or ` signum` is 0 and
` magnitude` contains one or more non-zero bytes. | |

`IndexOutOfBoundsException` | if the provided array offset and length would cause an index into the byte array to be negative or greater than or equal to the array length. |

Diagram: BigInteger, BigDecimal