我正在尝试使用 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
最佳答案
您可能想要gmp_printf("%#Zx\n",B);
。请永远不要发布这样的随机行,只发布完整的程序(使用 #include <gmp.h>
、使用 mpz_init(B)
等)。
关于c - gmp_printf() - 以十六进制/base16 打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36584558/