Πώς να μετατρέψετε το δεκαδικό σε δυαδικό στο C

Pos Na Metatrepsete To Dekadiko Se Dyadiko Sto C



Τα συστήματα υπολογιστών χρησιμοποιούν συχνά δυαδικούς αριθμούς για να αναπαραστήσουν δεδομένα και οδηγίες, αλλά επειδή τα δεκαδικά ψηφία είναι πιο απλά για τους ανθρώπους να τα κατανοήσουν παρά δυαδικά, απαιτείται μετατροπή. Αυτό το άρθρο θα εξετάσει την κατανόηση μεταξύ των δεκαδικών σε δυαδικά και θα παρέχει παραδείγματα προγραμμάτων διαφορετικών μεθόδων που μετατρέπουν δεκαδικούς σε δυαδικούς στη γλώσσα προγραμματισμού που ονομάζεται C.

Πώς να μετατρέψετε το δεκαδικό σε δυαδικό στο C;

Η δεδομένη δεκαδική τιμή διαιρείται με το 2 πολλές φορές, με το υπόλοιπο να καταγράφεται μέχρι να φτάσουμε στο 0 ως τελικό πηλίκο. Αυτή η διαδικασία χρησιμοποιείται για τη μετατροπή ακεραίων από δεκαδικούς σε δυαδικούς. Ο τύπος που δείχνει τη διαδικασία μετατροπής από δεκαδικό σε δυαδικό θεωρείται ότι είναι τα στάδια που έχουν ως εξής:







Βήμα 1: Βρείτε το υπόλοιπο διαιρώντας τον αριθμό με το 2 και μετά προσθέστε τον σε έναν πίνακα.



Βήμα 2: Στη συνέχεια, διαιρέστε το υπόλοιπο με δύο.



Βήμα 3: Εκτελέστε ξανά τα δύο πρώτα βήματα μέχρι το αποτέλεσμα να ξεπεράσει το 0.





Βήμα 4: Εμφανίστε τον πίνακα προς τα πίσω για να λάβετε τη δυαδική μορφή του αριθμού. Το Least-Significant-Bit (LSB) ενός δυαδικού αριθμού βρίσκεται στην κορυφή, ενώ το Most-Significant-Bit (MSB) είναι προς το κάτω μέρος, που είναι ένας άλλος τρόπος για να το ερμηνεύσουμε αυτό. Το δυαδικό ισοδύναμο του παρεχόμενου δεκαδικού αριθμού είναι αυτό.

Για να το κατανοήσετε καλύτερα, ακολουθεί μια μετατροπή  11 10 σε δεκαδική σε δυαδική μετατροπή:



Διαίρεση με το 2 Πηλίκο Υπόλοιπο
11÷2 5 1 (LSB)
5 ÷ 2 2 1
2-2 1 0
1-2 0 1 (MSB)


Τώρα, γράψτε το υπόλοιπο με την αντίστροφη σειρά, άρα δεκαδικό (11 10 ) γίνεται (1011 2 ).

Το υπόλοιπο θα σημειωθεί και στη συνέχεια θα γραφτεί έτσι ώστε να έρθει πρώτα το (MSB) του δυαδικού αριθμού και μετά το υπόλοιπο. Κατά συνέπεια, 1011 2 είναι το δυαδικό ισοδύναμο της δεδομένης δεκαδικής τιμής 11 10 . Ως αποτέλεσμα, 11 10 = 1011 2 . Ακολουθεί η υλοποίηση του προαναφερθέντος δεκαδικού σε δυαδική μετατροπή στη γλώσσα C.

Μέθοδοι που χρησιμοποιούνται για τη μετατροπή δεκαδικού σε δυαδικό

Αυτές οι μέθοδοι που χρησιμοποιούνται στη γλώσσα C μετατρέπουν τα δεκαδικά ψηφία σε δυαδικά:

Τώρα, εφαρμόστε τη μετατροπή των δεκαδικών σε δυαδικά με τις προαναφερθείσες προσεγγίσεις.

Μέθοδος 1: Δεκαδικός σε δυαδικό σε C Προγραμματισμός με βρόχο for

Παρακάτω είναι η μετατροπή του δεκαδικού ψηφίου(11) σε δυαδικό με τη βοήθεια του βρόχου for στο C:

#include
κενή μετατροπή ( int num1 ) {
αν ( num1 == 0 ) {
printf ( '0' ) ;
ΕΠΙΣΤΡΟΦΗ ;
}
int binary_num [ 32 ] ; // Υποθέτοντας 32 bit ακέραιος.
ενθ Εγώ = 0 ;
Για ( ;αριθμός1 > 0 ; ) {
δυαδικός_αριθμός [ i++ ] = αριθμός 1 % 2 ;
num1 / = 2 ;
}
Για ( int j = i- 1 ; ι > = 0 ; j-- )
printf ( '%ρε' , δυαδικός_αριθμός [ ι ] ) ;
}
int main ( ) {
int num1;
printf ( 'Πληκτρολογήστε έναν δεκαδικό αριθμό:' ) ;
scanf ( '%ρε' , & num1 ) ;
μετατρέπω ( num1 ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}


Το παραπάνω πρόγραμμα χρησιμοποιεί τον βρόχο for για να μετατρέψει τον δεκαδικό αριθμό που παρέχεται από τον χρήστη σε δυαδικό. Η έξοδος είναι:

Μέθοδος 2: Δεκαδικός σε Δυαδικό στον Προγραμματισμό C με ενώ βρόχο

Σε αυτή τη μέθοδο, ο βρόχος while στο C χρησιμοποιείται για τη μετατροπή του δεκαδικού ψηφίου (11) σε δυαδικό, όπως φαίνεται παρακάτω:

#include
int main ( ) {
int δεκαδικός_αριθμός, δυαδικός_αριθμός = 0 , βάση = 1 , υπόλοιπο;
printf ( 'Πληκτρολογήστε έναν δεκαδικό αριθμό:' ) ;
scanf ( '%ρε' , & δεκαδικός_αριθμός ) ;
ενώ ( δεκαδικός_αριθμός > 0 ) {
υπόλοιπο = δεκαδικός_αριθμός % 2 ;
binary_num = δυαδικός_αριθμός + υπόλοιπο * βάση;
δεκαδικός_αριθμός = δεκαδικός_αριθμός / 2 ;
βάση = βάση * 10 ;
}
printf ( 'Το δυαδικό του δεδομένου δεκαδικού αριθμού με βρόχο while είναι: %d' , δυαδικός_αριθμός ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}


Οι τέσσερις ακέραιες μεταβλητές decimal_num, binary_num, base και υπόλοιπο δηλώνονται για πρώτη φορά σε αυτό το πρόγραμμα. Ο χρήστης εισάγει ένα δεκαδικό_αριθμό, το οποίο θα μετατρέψουμε στο δυαδικό_αριθμό του. Η δυαδική μετατροπή πραγματοποιείται χρησιμοποιώντας τον βρόχο while.

Μέθοδος 3: Δεκαδικός σε δυαδικό σε C Προγραμματισμός με Στοίβα

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

#include

#define MAX_SIZE 32 // μέγιστος αριθμός bit σε δυαδική αναπαράσταση
int main ( ) {
int δεκαδικός_αριθμός, δυαδικός [ MAX_SIZE ] , κορυφή = -1 ;
printf ( 'Πληκτρολογήστε οποιονδήποτε δεκαδικό αριθμό: ' ) ;
scanf ( '%ρε' , & δεκαδικός_αριθμός ) ;
ενώ ( δεκαδικός_αριθμός > 0 ) {
δυάδικος [ ++κορυφή ] = δεκαδικός_αριθμός % 2 ;
δεκαδικός_αριθμός / = 2 ;
}
printf ( 'Το δυαδικό του %d χρησιμοποιώντας τη μέθοδο στοίβας είναι: ' ) ;
ενώ ( μπλουζα > = 0 ) {
printf ( '%ρε' , δυαδικό [ μπλουζα-- ] ) ;
}
ΕΠΙΣΤΡΟΦΗ 0 ;
}


Πρώτα δηλώνουμε τις τρεις ακέραιες μεταβλητές top, binary και decimal_num σε αυτό το πρόγραμμα. Το επάνω μέρος είναι το ευρετήριο του υψηλότερου στοιχείου στη στοίβα, το δεκαδικό είναι ο αριθμός σε δεκαδική μορφή που εισάγεται από τον χρήστη, ο δυαδικός είναι ένας πίνακας που θα περιέχει τα bit σε δυαδική μορφή ως MAX_SIZE bit και το decimal_num είναι ο δυαδικός πίνακας. Μετά από αυτό, η δυαδική μετατροπή πραγματοποιείται χρησιμοποιώντας έναν βρόχο while.

Η έξοδος είναι:

Μέθοδος 4: Δεκαδικός σε Δυαδικό σε Προγραμματισμό C με Bitwise Operator

Ένας τελεστής γνωστός ως λειτουργία bitwise χειρίζεται κάθε ένα από τα bit των δυαδικών συμβόλων που αντιπροσωπεύουν ακέραιους αριθμούς. Το παρακάτω είναι ένα βασικό σενάριο C που χρησιμοποιεί λειτουργίες bitwise για να μεταφράσει έναν αριθμό σε δεκαδικούς αριθμούς σε δυαδικό:

#include

// Αυτή η μέθοδος θα δείξει όλα τα 4 κομμάτια ενός αριθμού
κενή μετατροπή ( int num1 ) {
// Σκεφτείτε α 4 - αριθμός bit
Για ( int i = 3 ; Εγώ > = 0 ; Εγώ-- ) {
int bit = ( 1 << Εγώ ) ;
αν ( num1 & κομμάτι )
printf ( '1' ) ;
αλλού
printf ( '0' ) ;
}
}
int main ( ) {
int num1;
printf ( 'Πληκτρολογήστε έναν δεκαδικό αριθμό:' ) ;
scanf ( '%ρε' , & num1 ) ;
μετατροπή ( num1 ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}


Αυτό το πρόγραμμα θα εκτελέσει έναν βρόχο for μέσω του αριθμού που ξεκινά από το πιο σημαντικό bit και τελειώνει στο bit με τη μικρότερη σημασία. Εκτελώντας μια λειτουργία 'bitwise AND' στη μάσκα και το num, μπορούμε να προσδιορίσουμε εάν το bit είναι είτε 0 είτε 1. Εάν είναι μη μηδενικό, το παρόν bit είναι 1. διαφορετικά είναι 0.

Για να εμφανίσετε τη δυαδική μορφή του num1, βγάζετε το bit μετά από κάθε επανάληψη. Η τελική έξοδος μετά την πλήρη εκτέλεση θα είναι η παρακάτω:

συμπέρασμα

Η μετατροπή αριθμών από δεκαδικό σε δυαδικό είναι μια βασική δεξιότητα στον προγραμματισμό υπολογιστών. Η μετατροπή δεκαδικών αριθμών σε δυαδικούς μας επιτρέπει να πραγματοποιούμε διαφορετικές λειτουργίες στον προγραμματισμό C. Αυτό το άρθρο παρείχε 4 μεθόδους για τη μετατροπή δεκαδικών τιμών σε δυαδικές τιμές.