¿Es esto lo que buscabas?
Assignment Functions
These functions assign new values to already initialized integers (see section Initialization and Assignment Functions).
Function: void mpz_set (mpz_t rop, mpz_t op)
Function: void mpz_set_ui (mpz_t rop, unsigned long int op)
Function: void mpz_set_si (mpz_t rop, signed long int op)
Function: void mpz_set_d (mpz_t rop, double op)
Function: void mpz_set_q (mpz_t rop, mpq_t op)
Function: void mpz_set_f (mpz_t rop, mpf_t op)
Set the value of rop from op.
Function: int mpz_set_str (mpz_t rop, char *str, int base)
Set the value of rop from str, a '\0'-terminated C string in base base. White space is allowed in the string, and is simply ignored. The base may vary from 2 to 36. If base is 0, the actual base is determined from the leading characters: if the first two characters are `0x' or `0X', hexadecimal is assumed, otherwise if the first character is `0', octal is assumed, otherwise decimal is assumed.
This function returns 0 if the entire string up to the '\0' is a valid number in base base. Otherwise it returns -1.