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

10-11 04:24