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

Μετατροπή αριθμού από βάση α σε βάση β στην c++


Billy_Bekia
Μετάβαση στην απάντηση Απαντήθηκε από GReaperEx,

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

Πως μπορουμε να μετατρεψουμε εναν αριθμό από βάση α σε βάση β? Μπορει καποιος να με βοηθησει και να μου πει εναν αλγοριθμο για την c++? Οι βασεις α και β μπορει να ειναι ειτε η 2 ειτε η 8 ειτε η 10 ειτε η 16. Ευχαριστω!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το μόνο που μπορώ να πώ ειναι οτι σίγουρα ρωτάς σε λάθος σημείο του φορουμ και δε το λέω για σπάσιμο απλά παίζει να έχει λιγότερες πιθανότητες να πάρεις απάντηση. Πόσταρε και στην κατηγορία "Προγραμματισμός". 

On the subject ξέρω οτι υπάρχουν έτοιμα scriptakia για μετατροπή απο 10δικό σε 2δικό, το αντίστοφο κλπ οπότε δες σε τέτοιες βιβλιοθήκες ή πάρε ένα τέτοιο κώδικα και προσαρμωσέ τον (αν είναι εφικτό). 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Λύση

Ουσιαστικά, το μόνο που χρειάζεται να κάνεις είναι να μετατρέψεις τη βάση "α" σε δυαδικό( το μόνο που καταλαβαίνει το PC ) και μετά από δυαδικό στη βάση "β".

 

Για το πρώτο μέρος, γνωρίζοντας με ποιες τιμές συσχετίζονται τα πιθανά ψηφία της "α" βάσης, κάνεις αυτό στο περίπου:

Έστω Α ο αριθμός
Ζ <- 0
Για κάθε ψηφίο του Α, από αριστερά προς δεξιά:
    Ζ <- Ζ * (αριθμός βάσης)
    Ζ <- Ζ + (τιμή τρέχοντος ψηφίου)

Για το δεύτερο μέρος, βρίσκεις το υπόλοιπο του αριθμού με τη βάση που θες, και το μετατρέπεις στο ανάλογο ψηφίο, αλλά να ξέρεις ότι αυτή η τεχνική σου δίνει τα ψηφία ανάποδα:

Επανάλαβε
    Επόμενο ψηφίο <- μετατροπή(Ζ mod (αριθμός βάσης))
    Ζ <- Ζ div (αριθμός βάσης)
Όσο Ζ <> 0
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...