BigDecimal and BigInteger

"Immutable, arbitrary-precision signed decimal numbers. A BigDecimal consists of an arbitrary precision integer unscaled value and a 32-bit integer scale. If zero or positive, the scale is the number of digits to the right of the decimal point. If negative, the unscaled value of the number is multiplied by ten to the power of the negation of the scale. The value of the number represented by the BigDecimal is therefore (unscaledValue × 10-scale)."

Source: JAVA API for java.math.BigDecimal

Java Platform Standard Ed. 6, available at Java Platform SE 6.

Hence, what is the smallest/largest number that may be represented by BigInteger and BigDecimal, in layman's terms?

How is it possible to deduce the minimum and maximum values, and, display them programmatically?