Προς το περιεχόμενο

Βάση και BigInt


Anubis13

Προτεινόμενες αναρτήσεις

Δημοσ.

Εχω μία απλή συνάρτηση μετατροπής βάσης

 

>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 αλλα δεν δουλεψε

Δημοσ.

Δεν είμαι σίγουρος αν κατάλαβα καλά την ερώτηση, αλλά αν θες απλώς να μεγαλώσεις το εύρος των τιμών που μπορούν να φιλοξενηθούν στο s, τότε αντί για int δήλωσε το ως long int (αν μπορεί να πάρει κι αρνητικές τιμές) ή ως unsigned long int (αν είσαι σίγουρος πως δεν θα πάρει ποτέ αρνητική τιμή).

 

ΥΓ. Αν δουλεύεις με gcc, μπορείς να το δηλώσεις και ως long long int (αλλά αν το θυμάμαι καλά, αυτό είναι προέκταση της GNU, και όχι stnadard C... τσέκαρέ το καλού-κακού).

Δημοσ.

Αν κατέβασες τη βιβλιοθήκη από το επίσημο site, θα πρέπει να είδες τα links που υπάρχουν προς το σχετικό online documentation. Ρίξε του μια ματιά, φαίνεται σχετικά απλό.

 

Κυρίως τα κεφάλαια 3 (GMP Basics) και 5 (Integer Functions) σε ενδιαφέρουν, αν δεν κάνω λάθος.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...