Return non-zero iff the value of op fits in an
unsigned long int,
signed long int,
unsigned 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
,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.)