Μετατροπή δυαδικού σε δεκαδικό σε C++

Metatrope Dyadikou Se Dekadiko Se C



Στο άρθρο, θα δούμε τη μετατροπή δυαδικών τιμών σε δεκαδικές τιμές σε ένα πρόγραμμα C++. Ο δυαδικός αριθμός αντιπροσωπεύεται από τα ψηφία 0 και 1, ενώ οι δεκαδικές τιμές περιέχουν τα ψηφία που κυμαίνονται από το 0 έως το 9. Για να επιτευχθεί μια μετατροπή από δυαδικό σε δεκαδικό, η δυαδική τιμή θα πρέπει να πολλαπλασιαστεί με το 2 αυξάνοντας την ισχύ του ' n” ξεκινώντας από τα δεξιά και κινούμενοι προς τα αριστερά με υψηλότερο “n”. Ας το εφαρμόσουμε στον κώδικα για να μετατρέψουμε ένα δυαδικό σε δεκαδική τιμή.

Παράδειγμα 1: Πρόγραμμα δυαδικού σε δεκαδικό χρησιμοποιώντας τον βρόχο 'While'.

Έχουμε το παρακάτω πρόγραμμα για να μετατρέψουμε τον αριθμό από δυαδικό σε δεκαδικό. Μέσα στο πρόγραμμα, χρησιμοποιούμε τον βρόχο 'while' για τη δυαδική μετατροπή σε δεκαδικό.

#include
#include

χρησιμοποιώντας χώρο ονομάτων std ;

ενθ conversionOfBin ( μακρύς μακρύς ) ;

ενθ κύριος ( ) {
μακρύς μακρύς σε ένα ;
cout << 'Απαιτείται δυαδικός αριθμός: ' ;
τρώει >> σε ένα ;
cout << σε ένα << 'σε δυαδικό =' << conversionOfBin ( σε ένα ) << 'σε δεκαδικό' ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

ενθ conversionOfBin ( μακρύς μακρύς σε ένα ) {
ενθ Έτσι = 0 , Χ = 0 , υπόλοιπο ;

ενώ ( σε ένα ! = 0 ) {
υπόλοιπο = σε ένα % 10 ;
σε ένα / = 10 ;
Δεκ + = υπόλοιπο * pow ( 2 , Χ ) ;
++ Χ ;
}

ΕΠΙΣΤΡΟΦΗ Έτσι ;
}

Εδώ, ορίζουμε το αρχείο κεφαλίδας 'iostream' για τις ροές εισόδου και εξόδου και το 'cmath' για τη χρήση της μαθηματικής συνάρτησης στο πρόγραμμα. Μετά από αυτό, ορίζουμε τη συνάρτηση ConversionOfBin() όπου μεταβιβάζεται η παράμετρος τύπου 'long long'. Στη συνέχεια, έχουμε μια κλήση συνάρτησης main() για την εκτέλεση του προγράμματος. Δηλώνουμε μια μεγάλη μεταβλητή inter type που ονομάζεται “num” μέσα στη συνάρτηση main().







Μετά από αυτό, η συνάρτηση ConversionOfBin() μετατρέπει τον δυαδικό αριθμό εισόδου σε δεκαδικό αριθμό. Για αυτό, έχουμε τον ορισμό της συνάρτησης ConversionOfBin() μετά τον κώδικα του προγράμματος οδήγησης. Η συνάρτηση ConversionOfBin() μεταβιβάζεται με τη μεταβλητή 'num' που έχει τον δυαδικό αριθμό. Στη συνέχεια, καλούμε τον βρόχο 'while' για να μετατρέψουμε τον δυαδικό αριθμό σε 'num' σε δεκαδική τιμή. Πριν από αυτό, αρχικοποιούμε τις μεταβλητές 'deci', 'x' και 'remainder' με την τιμή '0'.



Εντός του βρόχου 'while', η λειτουργία διαίρεσης εκτελείται για να αναπαραστήσει τη δεξιά τιμή του δυαδικού αριθμού. Τα αποτελέσματα της διαίρεσης αποθηκεύονται στη μεταβλητή 'Remainder'. Στη συνέχεια, προσθέτουμε τα αποτελέσματα του υπολοίπου και η ισχύς προκύπτει στη μεταβλητή 'deci'. Η μεταβλητή 'x' συνεχίζει να αξιολογεί την ενεργή ισχύ του 2.



Τα αποτελέσματα της μετατροπής των καθορισμένων δυαδικών αριθμών σε δεκαδικές τιμές επιτυγχάνονται στην κονσόλα C++:





Παράδειγμα 2: Πρόγραμμα δυαδικού σε δεκαδικό με χρήση του βρόχου 'For'.

Ο μετασχηματισμός από το δυαδικό σε δεκαδικό πραγματοποιήθηκε χρησιμοποιώντας έναν βρόχο 'while'. Ωστόσο, μπορούμε επίσης να χρησιμοποιήσουμε τη μέθοδο βρόχου 'for' για να μετατρέψουμε τα δυαδικά bit σε δεκαδικό αριθμό.



#include
#include

ενθ κύριος ( ) {
std :: σειρά αποθήκη ;
std :: cout << 'Εισαγωγή δυαδικού αριθμού: ' ;
std :: τρώει >> αποθήκη ;

ενθ Δεκ = 0 ;
ενθ baseIs = 1 ;

Για ( ενθ ένα = αποθήκη. μήκος ( ) - 1 ; ένα >= 0 ; ένα -- ) {
αν ( αποθήκη [ ένα ] == '1' ) {
Δεκ + = baseIs ;
}
        baseIs * = 2 ;
}

std :: cout << 'Αποτελέσματα σε δεκαδικό: ' << Δεκ << std :: endl ;

ΕΠΙΣΤΡΟΦΗ 0 ;
}

Εδώ, ξεκινάμε με το πρόγραμμα συνάρτησης main() όπου έχουμε τη μεταβλητή “std::string” που είναι “bin” για να αποθηκεύσουμε τη δυαδική εισαγωγή αριθμού από τον χρήστη στη γραμμή εντολών. Αρχικά, η προτροπή θα ζητήσει από τον χρήστη να εισαγάγει τον δυαδικό αριθμό χρησιμοποιώντας τη δήλωση 'cout'. Στη συνέχεια, η εντολή 'cin' θα διαβάσει αυτόν τον δυαδικό αριθμό. Μετά από αυτό, αρχικοποιούμε τη μεταβλητή 'dec' με την τιμή '0' και τη μεταβλητή 'baseIs' με την τιμή '1' για να λάβουμε το δεκαδικό ισοδύναμο.

Στη συνέχεια, καλούμε έναν βρόχο «για» που κάνει βρόχους πάνω από κάθε αριθμό του καθορισμένου δυαδικού αρχείου από δεξιά προς τα αριστερά. Εντός του βρόχου, έχουμε μια συνθήκη 'αν' για να επαληθεύσουμε εάν ο δυαδικός αριθμός είναι 1. Εάν είναι 1, η δεκαδική τιμή προστίθεται στη μεταβλητή 'dec'. Η μεταβλητή 'baseIs' έχει τη δύναμη του 2 να πολλαπλασιάζεται με 1 σε κάθε επανάληψη.

Η τιμή του δυαδικού αριθμού και η μετατροπή του σε δεκαδική τιμή εμφανίζονται στην οθόνη προτροπής:

Παράδειγμα 3: Πρόγραμμα δυαδικής συμβολοσειράς σε δεκαδικό

Η τιμή δυαδικής συμβολοσειράς ορίζεται τώρα για να μετατρέψει την τιμή της σε δεκαδική τιμή. Η ακόλουθη υλοποίηση γίνεται για να μετατραπεί η τιμή της δυαδικής συμβολοσειράς σε δεκαδική τιμή:

#include
#include
χρησιμοποιώντας χώρο ονομάτων std ;

ενθ binToDec ( κορδόνι βαλ )
{
τιμή συμβολοσειράς = val ;
ενθ δεκαδική_τιμή = 0 ;

ενθ βασική_τιμή = 1 ;

ενθ μόνο = αξία. μήκος ( ) ;
Για ( ενθ Μ = μόνο - 1 ; Μ >= 0 ; Μ -- ) {
αν ( val [ Μ ] == '1' )
δεκαδική_τιμή + = βασική_τιμή ;
βασική_τιμή = βασική_τιμή * 2 ;
}

ΕΠΙΣΤΡΟΦΗ δεκαδική_τιμή ;
}

ενθ κύριος ( )
{
κορδόνι βαλ = '11100101' ;
cout << binToDec ( val ) << endl ;
}

Εδώ, ξεκινάμε με τη δημιουργία μιας συνάρτησης BinToDec() για τη μετατροπή δυαδικών ψηφίων σε δεκαδικές τιμές. Η συνάρτηση BinToDec() λαμβάνει το όρισμα 'val' του τύπου συμβολοσειράς. Μέσα στη συνάρτηση BinToDec(), αρχικοποιούμε τη μεταβλητή 'value' με τη μεταβλητή 'val' που αντιπροσωπεύει ότι η τιμή της μεταβλητής 'val' θα αποθηκευτεί στη μεταβλητή 'value'. Στη συνέχεια, δηλώνουμε μια νέα μεταβλητή, 'decimal_value', στην οποία εκχωρείται μια τιμή 0.

Παρομοίως, η μεταβλητή «base_value» τίθεται και αρχικοποιείται με την τιμή 1. Στη συνέχεια, ορίζουμε τη μεταβλητή «len» όπου η συνάρτηση length() καλείται για να πάρει το μήκος του δυαδικού αριθμού. Μετά την αρχικοποίηση της μεταβλητής, έχουμε την επανάληψη του βρόχου «for». Ο βρόχος «για» επαναλαμβάνει κάθε δυαδικό αριθμητικό ψηφίο από τα δεξιά προς τα αριστερά.

Μετά από αυτό, έχουμε μια συνάρτηση main() όπου ο δυαδικός αριθμός καθορίζεται ως τιμή συμβολοσειράς στη μεταβλητή 'val' η οποία μετατρέπεται σε δεκαδική τιμή όπως ονομάζουμε τη συνάρτηση BinToDec(val) με την εντολή 'cout'.

Η δυαδική τιμή τύπου συμβολοσειράς μετατρέπεται τώρα στην δεκαδική τιμή όπως εμφανίζεται στα ακόλουθα:

Παράδειγμα 4: Πρόγραμμα δυαδικού σε δεκαδικό χρησιμοποιώντας την κλάση συνόλων bits

Επιπλέον, μπορούμε να μετατρέψουμε τον δυαδικό αριθμό σε δεκαδικό αριθμό ορίζοντας την κλάση «bitset» της C++ στο πρόγραμμα. Παρέχει τις λειτουργίες μέσω των οποίων η διαδικασία μετατροπής είναι πολύ απλή.

#include
#include

ενθ κύριος ( ) {
std :: σειρά binaryIs ;
std :: cout << 'Παρακαλώ δώστε δυαδικό αριθμό: ' ;
std :: τρώει >> binaryIs ;

std :: bitset < 64 > δυάδικος ( binaryIs ) ;
ανυπόγραφο μακρύς δεκαδικός αριθμός = δυάδικος. πολύ μακρύ ( ) ;

std :: cout << 'Δεκαδικός αριθμός: ' << δεκαδικός αριθμός << std :: endl ;

ΕΠΙΣΤΡΟΦΗ 0 ;
}

Εδώ, ορίζουμε τη βιβλιοθήκη 'bitset' της C++ στην κεφαλίδα, η οποία είναι πολύ χρήσιμη όταν εργάζεστε με δυαδικές τιμές. Μετά από αυτό, έχουμε έναν ορισμό συνάρτησης main() όπου χρησιμοποιούμε το 'std::string' για να δηλώσουμε τη μεταβλητή 'binaryIs'. Η μεταβλητή 'binaryIs' αποθηκεύει την τιμή του δυαδικού στη συμβολοσειρά. Στη συνέχεια, ζητάμε από τον χρήστη να προσθέσει τον δυαδικό αριθμό στην προτροπή του χρήστη και διαβάζεται μέσω της εντολής «cin». Μετά από αυτό, προσαρμόζουμε το μέγεθος των bit που μπορεί να είναι ακέραιος αριθμός 64 bit. Στη συνέχεια, η συνάρτηση to_ulong() καλείται από την κλάση «bitset» στη μεταβλητή «decimalNumber». Η συνάρτηση to_ulong() μετατρέπει το σύνολο των bit σε έναν ανυπόγραφο τύπο δεδομένων μεγάλου μήκους. Τέλος, χρησιμοποιούμε την εντολή «cout» για να εκτυπώσουμε τη δεκαδική τιμή της δυαδικής τιμής που δίνεται από τον χρήστη.

Η δυαδική τιμή που παρέχεται από τον χρήστη μετατρέπεται τώρα στην δεκαδική τιμή:

συμπέρασμα

Συμπερασματικά, καλύψαμε τις μεθόδους μετατροπής μιας δυαδικής τιμής σε δεκαδική τιμή. Χρησιμοποιήσαμε τον βρόχο 'for', 'while' και τις προσεγγίσεις κλάσης bits για τη δυαδική μετατροπή σε δεκαδικό. Αυτές οι προσεγγίσεις μετατρέπουν τους δυαδικούς αριθμούς σε δεκαδικά συστήματα που διευκολύνουν την ανάγνωση και την κατανόηση.