quinta-feira, 3 de junho de 2010

GMP

Quantas vezes você procurou uma biblioteca em C que trate números grandes tipo 128 bits, etc ... Eu precisei disso quando tive que transformar da notação hexadecimal o valor resultante de uma função de hash (MD5) de 128 bits para a notação decimal. A Resposta é usar a biblioteca GMP (http://gmplib.org/). A biblioteca é muito fácil de usar para quem conhece o C pois usa as mesma nomeclatura das funções existentes. Me poupou um tempão ..

int main (int argc, char *agv[]) {
char szValorHexa [200+1];
char szValorDec [200+1];
mpq_t q;

mpq_init (q);

strcpy (szValorHexa, "0x3b274f94d03");

gmp_sscanf (szValorHexa, "%Qi", q);

gmp_sprintf (szValorDec, "%Qd", q);

mpq_clear(q);

printf (szValorDec);
}

Nenhum comentário:

Postar um comentário