我正在尝试使用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/