Annoying mpz_set_str behaviour

Niels Möller nisse at
Wed Feb 20 11:54:01 CET 2013

Torbjorn Granlund <tg at> writes:

> This call fails:
>   mpz_set_str (z, "0xbade", 16)
> Why?  Because when given an explicit base the 0x prefix is not allowed.
> Do we really want it to work like that?

I think so. Unless there's some other function which accepts proper hex
digits only.

Say I parse some file format containing hex values, and use mpz_set_str.
Then I don't want to inherit a syntax with an optional "0x"-prefix from
GMP, unless that's explicitly allowed in the file format specification.
(And I probably wouldn't want to allow white space either).

I guess some users would expect mpz_set_str to have behaviour consistent
with strtol, but then this issue is not the only deviation.


Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.

More information about the gmp-devel mailing list