— Function: int **mpz_fits_ulong_p** (`const mpz_t op`)

— Function: int**mpz_fits_slong_p** (`const mpz_t op`)

— Function: int**mpz_fits_uint_p** (`const mpz_t op`)

— Function: int**mpz_fits_sint_p** (`const mpz_t op`)

— Function: int**mpz_fits_ushort_p** (`const mpz_t op`)

— Function: int**mpz_fits_sshort_p** (`const mpz_t op`)

— Function: int

— Function: int

— Function: int

— Function: int

— Function: int

Return non-zero iff the value of

opfits in an`unsigned long int`

,`signed long int`

,`unsigned int`

,`signed int`

,`unsigned short int`

, or`signed short int`

, respectively. Otherwise, return zero.

— Macro: int **mpz_odd_p** (`const mpz_t op`)

— Macro: int**mpz_even_p** (`const mpz_t op`)

— Macro: int

Determine whether

opis odd or even, respectively. Return non-zero if yes, zero if no. These macros evaluate their argument more than once.

— Function: size_t **mpz_sizeinbase** (`const mpz_t op, int base`)

Return the size of

opmeasured in number of digits in the givenbase.basecan vary from 2 to 62. The sign ofopis ignored, just the absolute value is used. The result will be either exact or 1 too big. Ifbaseis a power of 2, the result is always exact. Ifopis zero the return value is always 1.This function can be used to determine the space required when converting

opto 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 inop, counting from 1. (Unlike the bitwise functions which start from 0, See Logical and Bit Manipulation Functions.)