gmp_printf() - 以十六进制/ base16

时间:2016-04-12 21:38:39

标签: c hex printf gmp

我正在尝试使用gmp_printf()以十六进制打印,但是出于某种原因,它并没有奇怪的工作/工作。

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 个答案:

答案 0 :(得分:1)

你可能想要gmp_printf("%#Zx\n",B);。请从不发布此类随机行,仅发布完整程序(包含#include <gmp.h>mpz_init(B)等)。