2016-04-12 1 views
0

J'essaye d'imprimer en hexadécimal en utilisant gmp_printf(), mais pour une raison quelconque, cela ne fonctionne pas/fonctionne bizarrement.gmp_printf() - print en hexadecimal/base16

mpz_t B; //number of bytes 
mpz_set_str(B,argv[2],0); 
gmp_printf("%Zd",B); 

Fonctionne bien.

a essayé de changer pour:

gmp_printf("%#0xZd",B); 

Mais en utilisant ce que je reçois des sorties différentes pour la même entrée:

input: 0x397a52dccd55d39823964ae25 
output1: 0xa8392f80Zd 
output2: 0xa1eca3b0Zd 
desired output: 0x397a52dccd55d39823964ae25 

Répondre

1

Vous voulez sans doute gmp_printf("%#Zx\n",B);. S'il vous plaît jamais lignes aléatoires comme celui-ci, seulement des programmes complets (avec #include <gmp.h>, avec mpz_init(B), etc).