Anubis13 Δημοσ. 17 Μαΐου 2011 Δημοσ. 17 Μαΐου 2011 Εχω μία απλή συνάρτηση μετατροπής βάσης >int convert(int *dig,int b,int n) { int i = 0; int s = 0; int p = 1; for (i = n-1;i>=0;i--) { s = s + dig[i]*p; p = p*b; } return s; } και θελω επειδη το s μπορει να βαινει τεραστιο να το κανω να χρησιμοποιει την συναρτηση bignum lib. Πως μπορω να το κανω αυτο? Ορισα το s σαν ενα μεγαλο integer αλλα δεν δουλεψε
migf1 Δημοσ. 17 Μαΐου 2011 Δημοσ. 17 Μαΐου 2011 Δεν είμαι σίγουρος αν κατάλαβα καλά την ερώτηση, αλλά αν θες απλώς να μεγαλώσεις το εύρος των τιμών που μπορούν να φιλοξενηθούν στο s, τότε αντί για int δήλωσε το ως long int (αν μπορεί να πάρει κι αρνητικές τιμές) ή ως unsigned long int (αν είσαι σίγουρος πως δεν θα πάρει ποτέ αρνητική τιμή). ΥΓ. Αν δουλεύεις με gcc, μπορείς να το δηλώσεις και ως long long int (αλλά αν το θυμάμαι καλά, αυτό είναι προέκταση της GNU, και όχι stnadard C... τσέκαρέ το καλού-κακού).
parsifal Δημοσ. 17 Μαΐου 2011 Δημοσ. 17 Μαΐου 2011 Αν κατέβασες τη βιβλιοθήκη από το επίσημο site, θα πρέπει να είδες τα links που υπάρχουν προς το σχετικό online documentation. Ρίξε του μια ματιά, φαίνεται σχετικά απλό. Κυρίως τα κεφάλαια 3 (GMP Basics) και 5 (Integer Functions) σε ενδιαφέρουν, αν δεν κάνω λάθος.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.