Forum: PC-Programmierung gmp variable erstellen


von Johannes (Gast)


Lesenswert?

Hallo,
wenn ich mit der libgmp-library eine Variable erstelle, kennei ich diese 
ja vorher
1
mpz_t var;
2
mpz_init_set_str(var, 123456",16);
hier setze ich die Variable BASE auf 0x123456. Diesen wert kannte ich ja 
bei der definition schon.
Wie kann ich jetzt aber einen Array als mpz_t variable abspeichern? Z.B. 
wenn ich die Werte geschickt bekomme und zusammensetzen muss?
z.B.
1
arr[0] = 0x12;
2
arr[1] = 0x34;
3
arr[2] = 0x56;

von Johannes (Gast)


Lesenswert?

anführungsstriche vergessen
1
mpz_t var;
2
mpz_init_set_str(var, "123456",16);

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

mpz_init_set_str erwartet eine Textrepräsentation der Zahl.

Du kannst jetzt Dein Array in eine Textrepräsentation überführen und 
dann mpz_init_set_str aufrufen:
1
char text[10];
2
3
snprintf(text, 10, "%02x%02x%02x", arr[0], arr[1], arr[2]);
4
5
mpz_init_set_str(var, text, 16);

Du könntest auch den Weg über einen Integer gehen, in den Du Dein Array 
umwandelst, und dann zB. mpz_set_ui resp. mpz_set_si verwenden.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.