Return non-zero iff the value of op fits in an
unsigned long int,
signed long int,
short int, or
signed short int, respectively. Otherwise, return zero.
Determine whether op is odd or even, respectively. Return non-zero if yes, zero if no. These macros evaluate their argument more than once.
Return the size of op measured in number of digits in the given base. base can vary from 2 to 62. The sign of op is ignored, just the absolute value is used. The result will be either exact or 1 too big. If base is a power of 2, the result is always exact. If op is zero the return value is always 1.
This function can be used to determine the space required when converting
op to a string. The right amount of allocation is normally two more
than the value returned by
mpz_sizeinbase, one extra for a minus sign
and one for the null-terminator.
It will be noted that
mpz_sizeinbase(op,2) can be used to locate
the most significant 1 bit in op, counting from 1. (Unlike the bitwise
functions which start from 0, See Logical
and Bit Manipulation Functions.)