我正在尝试使用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
答案 0 :(得分:1)
你可能想要gmp_printf("%#Zx\n",B);
。请从不发布此类随机行,仅发布完整程序(包含#include <gmp.h>
,mpz_init(B)
等)。