int
mpz_fits_ulong_p (const mpz_t op)
¶int
mpz_fits_slong_p (const mpz_t op)
¶int
mpz_fits_uint_p (const mpz_t op)
¶int
mpz_fits_sint_p (const mpz_t op)
¶int
mpz_fits_ushort_p (const mpz_t op)
¶int
mpz_fits_sshort_p (const mpz_t op)
¶Return non-zero iff the value of op fits in an unsigned long int
,
signed long int
, unsigned int
, signed int
, unsigned
short int
, or signed short int
, respectively. Otherwise, return zero.
int
mpz_odd_p (const mpz_t op)
¶int
mpz_even_p (const mpz_t op)
¶Determine whether op is odd or even, respectively. Return non-zero if yes, zero if no. These macros evaluate their argument more than once.
size_t
mpz_sizeinbase (const mpz_t op, int base)
¶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.)