Bitwise τελεστές στη γλώσσα Γ

Bitwise Operators C Language



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

Συνδεθείτε από το σύστημα Linux και δοκιμάστε τη συντόμευση Ctrl+Alt+T για να ανοίξετε το τερματικό της κονσόλας. Θα έχουμε ορισμένα παραδείγματα για την επεξεργασία των λειτουργιών των bitwise τελεστών στη γλώσσα C. Ας αναπτύξουμε ξεχωριστά κάθε χειριστή δυαδικών ψηφίων.







Bitwise ΚΑΙ:

Ο δυαδικός τελεστής έχει χρησιμοποιηθεί για να αντιγράψει λίγο στο αποτέλεσμα, αν αυτό το bit υπάρχει και στους δύο αμοιβαίους τελεστές. Το C ή το C ++ απαιτεί 2 τελεστέους που εκτελούν ΚΑΙ σε κάθε bit από αυτούς τους δύο ακέραιους αριθμούς. Bitwise AND αποτελέσματα 1 όταν και τα δύο bits έχουν τιμή 1. Έτσι, για να κατανοήσετε τη λειτουργία, δημιουργήστε και ανοίξτε ένα αρχείο τύπου C χρησιμοποιώντας τον επεξεργαστή Nano. Για αυτό, πρέπει να καταναλώνουμε οδηγίες νανο στο κέλυφος ως εξής:



$νανοδοκιμή.γ



Ο κωδικός για τον τελεστή Bitwise AND εμφανίζεται στην παρακάτω εικόνα. Το μόνο που έχετε να κάνετε είναι απλά να γράψετε αυτόν τον κώδικα στο αρχείο test.c του επεξεργαστή nano GNU όπως είναι. Αυτός ο κώδικας διαθέτει τη βιβλιοθήκη κεφαλίδων stdio.h χωρίς την οποία δεν μπορούμε να ολοκληρώσουμε την κωδικοποίηση στον προγραμματισμό C. Στη συνέχεια, έχουμε δημιουργήσει μια κύρια μέθοδο με τον τύπο επιστροφής της ως ακέραιο. Στη γλώσσα C, η εκτέλεση του κώδικα γίνεται μέσω της κύριας μεθόδου. Έχουμε δηλώσει δύο μεταβλητές τύπου ακέραιους, x και y, με τις τιμές 35 και 13 ανάλογα. Μετά από αυτό, μια άλλη ακέραια μεταβλητή έχει οριστεί με μηδέν ως τιμή της. Θα χρησιμοποιήσουμε τις δύο πρώτες ακέραιες μεταβλητές και θα εφαρμόσουμε τον δυαδικό τελεστή AND μεταξύ τους. Αυτή η εργασία έχει γίνει στην επόμενη γραμμή όπου ο τελεστής AND έχει χρησιμοποιηθεί ως &, και η προκύπτουσα τιμή θα αποθηκευτεί στη μηδενική μεταβλητή z. Στη συνέχεια, χρησιμοποιήσαμε τη δήλωση εκτύπωσης για να εμφανίσουμε την τιμή που προκύπτει στην οθόνη τερματικού και η κύρια μέθοδος κλείνει. Αποθηκεύστε το αρχείο σας χρησιμοποιώντας τη συντόμευση GNU Ctrl+S και, στη συνέχεια, κλείστε τον επεξεργαστή nano μέσω Ctrl+X από τη γραφομηχανή πληκτρολογίου.





Έτσι, είναι η στιγμή να μεταγλωττίσετε τον παραπάνω κώδικα μετά την αποθήκευση του αρχείου. Χρησιμοποιήστε τις οδηγίες gcc στο κέλυφος της κονσόλας σας ενώ χρησιμοποιείτε το όνομα ενός αρχείου ως test.c ή ό, τι ονομάσατε στο αρχείο και πατήστε το πλήκτρο Enter. Μπορείτε να δείτε ότι δεν παρουσιάζει κανένα σφάλμα. αυτό σημαίνει ότι ο κωδικός είναι χειροκίνητος σωστός.



$gccδοκιμή.γ

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

$Το/a.out

Bitwise OR:

Τώρα, είναι έτοιμο να επεξεργαστεί ο χειριστής bitwise OR. Ο δυαδικός τελεστής επιστρέφει 1 ως αποτέλεσμα όταν ένα από τα δυαδικά ψηφία του είναι 1. Εάν και τα δύο δυαδικά ψηφία είναι 0, τότε αποδίδει 0. Αφού λάβει όλα τα δυαδικά ψηφία, θα δημιουργηθεί ένα σύνολο δυαδικών ψηφίων. Πρέπει να δούμε σε τι αριθμό σχηματίστηκαν αυτά τα κομμάτια. Έτσι, ανοίξτε πρώτα το ίδιο έγγραφο test.c. Πληκτρολογήστε και, στη συνέχεια, αποθηκεύστε τον παρακάτω κώδικα στο αρχείο GNU χρησιμοποιώντας το πλήκτρο Ctrl+S. Ο κώδικας είναι σχεδόν ο ίδιος με το παραπάνω παράδειγμα χειριστή bitwise ΚΑΙ. Αυτή τη φορά μόλις αλλάξαμε την τιμή του ακέραιου x σε 47 και χρησιμοποιήσαμε τον τελεστή OR, π.χ. | μεταξύ των δύο μεταβλητών. Κλείστε το αρχείο για να μεταγλωττίσετε τον κώδικα.

Μετά την επιτυχή εκτέλεση του test.c εγγράφου, εμφανίζει το 47 bit εξόδου.

$Το/a.out

Bitwise XOR:

Ο δυαδικός τελεστής επιστρέφει 1 όταν και τα δύο δυαδικά ψηφία είναι διαφορετικά. Έτσι, όταν τα bits είναι ίδια, θα αποδώσει 0. Το σύμβολο του τελεστή ^ θα αντιπροσωπεύει τον δυαδικό τελεστή. Έτσι, ξανά, ανοίξτε το έγγραφο και γράψτε τον ίδιο παλιό κώδικα στον επεξεργαστή αρχείων GNU. Αυτή τη φορά χρησιμοποιούσαμε τους τελεστές ^ μέσα σε δύο ακέραιες μεταβλητές και το αποτέλεσμα θα αποθηκευτεί στη μεταβλητή z κατά την εκτύπωση στο τερματικό.

Μεταγλώττιση και εκτέλεση του αρχείου test.c επιστρέψτε 34 ως αποτέλεσμα. Αυτό σημαίνει ότι ο νέος ακέραιος 34 δημιουργείται αφού ο τελεστής XOR έχει εφαρμοστεί σε δύο ακέραιες μεταβλητές.

$Το/a.out

Συμπλήρωμα Bitwise:

Αυτός ο τελεστής θα εφαρμοστεί μόνο σε μία μεταβλητή και θα επιστρέψει την τιμή του αριθμού bit. Για παράδειγμα, θα αλλάξει το 0 bit σε 1 και το 1 σε 0 bit. Γράψτε τον ίδιο κωδικό στο ίδιο αρχείο αλλά με μια μικρή αλλαγή στη γραμμή 6. Έχουμε αντιστοιχίσει το αντίστροφο του x στο z.

Συγκεντρώστε το αρχείο και εκτελέστε το. Στο C, το αποτέλεσμα του συμπληρώματος Bitwise αυξήθηκε με 1 με αρνητικό πρόσημο.

Αριστερός χειριστής αλλαγής:

Θα μετατοπίσει τη θέση των δυαδικών ψηφίων σε κάποιο βαθμό. Ο ίδιος κώδικας μπορεί να εμφανιστεί στην προσαρτημένη εικόνα- παρακάτω. Σε αυτό το παράδειγμα, θα μετατοπίσουμε 2 bits προς τα αριστερά.

Η έξοδος δείχνει το 188 ως τιμή που δημιουργήθηκε πρόσφατα.

$Το/a.out

Χειριστής δεξιάς βάρδιας:

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

Αυτή τη φορά έχουμε 11 ως έξοδο όταν μετατοπίζουμε 2 bit στη δεξιά πλευρά.

$Το/a.out

Συμπέρασμα:

Σε αυτό το άρθρο έχουμε καλύψει όλους τους βασικούς 6 bitwise τελεστές στον κώδικα της γλώσσας C μας. Ελπίζω να έχετε αυτό που θέλετε από τον οδηγό μας.