2016-04-12 2 views
0

Я пытаюсь напечатать в шестнадцатеричном формате с помощью gmp_printf(), но для somereason он не работает/работает странно.gmp_printf() - print in hexadecimal/base16

mpz_t B; //number of bytes 
mpz_set_str(B,argv[2],0); 
gmp_printf("%Zd",B); 

Работы хорошо.

пытался изменить его на:

gmp_printf("%#0xZd",B); 

Но с помощью этого я получаю различные выходы для того же входа:

input: 0x397a52dccd55d39823964ae25 
output1: 0xa8392f80Zd 
output2: 0xa1eca3b0Zd 
desired output: 0x397a52dccd55d39823964ae25 

ответ

1

Вы, наверное, хотите gmp_printf("%#Zx\n",B);. Пожалуйста, никогда после случайных строк, как это, только полные программы (с #include <gmp.h>, с mpz_init(B) и т. Д.).