Calculate the integer square root {@code floor(sqrt(this))} where
{@code sqrt(.)} denotes the mathematical square root. The contents of
{@code this} are <b>not</b> changed. The value of {@code this} is assumed
to be non-negative.
@implNote The implementation is based on the material in Henry S. Warren,
Jr., <i>Hacker's Delight (2nd ed.)</i> (Addison Wesley, 2013), 279-282.
@throws ArithmeticException if the value returned by {@code bitLength()}
overflows the range of {@code int}.
@return the integer square root of {@code this}
Calculate the integer square root {@code floor(sqrt(this))} where {@code sqrt(.)} denotes the mathematical square root. The contents of {@code this} are <b>not</b> changed. The value of {@code this} is assumed to be non-negative.
@implNote The implementation is based on the material in Henry S. Warren, Jr., <i>Hacker's Delight (2nd ed.)</i> (Addison Wesley, 2013), 279-282.
@throws ArithmeticException if the value returned by {@code bitLength()} overflows the range of {@code int}. @return the integer square root of {@code this}