Χειριστής C# Bitwise Left Shift (<<).

Cheiristes C Bitwise Left Shift



Στον προγραμματισμό C#, μπορούμε να χρησιμοποιήσουμε τους τελεστές Bitwise για να εκτελέσουμε τις λειτουργίες σε επίπεδο bit. Ο υπολογισμός του επιπέδου bit γίνεται στην CPU όταν εκτελούμε αριθμητικές πράξεις όπως πρόσθεση, αφαίρεση, πολλαπλασιασμό ή διαίρεση. Μπορούμε επίσης να κάνουμε λειτουργίες Bitwise στον προγραμματισμό C# και η διαδικασία είναι απλή. Οι τελεστές Bitwise εκτελούν μια λειτουργία στη δεδομένη τιμή. Καθορίζεται επίσης ο αριθμός των bit προς μετατόπιση. Υπάρχουν έξι τελεστές Bitwise στη γλώσσα C#, δύο από αυτούς είναι τελεστές shift.

Το θέμα της συζήτησής μας αφορά τους χειριστές βάρδιας. Ο τελεστής Bitwise left shift (<<) θα εξηγηθεί λεπτομερώς. Ο χειριστής shift, όπως υποδηλώνει το όνομα, μετατοπίζει το bit από την καθορισμένη θέση προς τα αριστερά ή προς τα δεξιά. Η τιμή μετακινείται προς τα αριστερά κατά τον καθορισμένο αριθμό bit κατά τη χρήση του τελεστή αριστερού shift κατά bit (<<). Οι τελεστές αριστερής μετατόπισης λαμβάνουν την είσοδο μόνο σε int (ακέραιος), uint (ακέραιος χωρίς υπογραφή), long (μακρός ακέραιος) και ulong (unsigned long integer). Όταν ο αριστερός τελεστής ανήκει σε διαφορετικό τύπο, μετατρέπεται στον ακέραιο τύπο. Ο τύπος δεδομένων της προκύπτουσας τιμής διατηρεί ένα όριο 32 bit. η έξοδος δεν μπορεί να είναι μεγαλύτερη από αυτό. Οι χειριστές bitwise κάνουν τον κώδικα αποτελεσματικό και ταχύτερο. Επιπλέον, προσφέρουν μεγαλύτερη ακρίβεια και ακρίβεια.

Σύνταξη:

Operand_1 << Operand_2







Το πρώτο 'Operand_1' είναι η τιμή που μετατοπίζεται από τα αριστερά στον αριθμό των μετατοπίσεων που περιέχει το 'Operand_2'. Το σύμβολο << αριστερά μετατοπίζει το 'Operand_1'.



Παράδειγμα 1:

Ο τελεστής μετατόπισης Bitwise αριστερά (<<) εφαρμόζεται στις ακέραιες τιμές αυτού του προγράμματος.



χρησιμοποιώντας το σύστημα.

Πρόγραμμα τάξης_1
{
στατικό κενό Κύριο ( ) {
int Τιμή_0 = 3. 4 ;
int Τιμή_1 = 65 ;
ενθ res = Τιμή_0 << Τιμή_1;
Console.Write ( 'Η αριστερή μετατόπιση είναι  ' ) ;
Console.Write ( res ) ;
}
}

Η πρώτη δήλωση περιέχει τη δήλωση και την αρχικοποίηση δύο μεταβλητών ακέραιου τύπου. Η πρώτη μεταβλητή είναι 'Value_0' και η δεύτερη μεταβλητή είναι 'Value_1'. Οι τιμές που είναι αποθηκευμένες σε αυτά είναι '34' και '65'. Αφήσαμε shift την τιμή 34 χρησιμοποιώντας τον τελεστή αριστερού shift (<<). Στη συνέχεια, δηλώνουμε μια άλλη μεταβλητή που έχει ακέραιο τύπο δεδομένων για αποθήκευση του αποτελέσματος. Εδώ, χρησιμοποιούμε τον αριστερό τελεστή μετατόπισης (<<) ως Τιμή_0 << Τιμή_1. Αυτός ο τελεστής αριστερά μετατοπίζει την αριστερή τιμή του αριστερού τελεστή κατά τη δεδομένη τιμή στον δεύτερο τελεστή. Το 'res' αποθηκεύει την έξοδο του χειριστή αλλαγής ταχυτήτων. Μετά από αυτό, καλούμε τη μέθοδο Console.Write() για να εκτυπώσουμε κείμενο 'The left shift is' και την προκύπτουσα τιμή που αποθηκεύεται σε 'res' στο τερματικό.





Παράδειγμα 2:

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



χρησιμοποιώντας το σύστημα.

Πρόγραμμα τάξης_2
{
στατικό κενό Κύριο ( ) {
uint Val_0 = 4435 ;
int  Val_1 = 64 ;
uint αποτέλεσμα = Val_0 << Val_1;
Console.Write ( 'Η αριστερή μετατόπιση είναι' ) ;
Console.Write ( αποτέλεσμα ) ;
}
}

Εδώ, εφαρμόζουμε τον αριστερό τελεστή shift στην τιμή του ανυπόγραφου ακέραιου τύπου. Ένα πράγμα που πρέπει να προσέξετε είναι ότι ο δεύτερος τελεστής πρέπει να είναι μια τιμή ακέραιου τύπου επειδή ο μεταγλωττιστής παίρνει μόνο μια ακέραια τιμή για μετατόπιση.

Αφού καλέσουμε τη συνάρτηση static void Main(), δηλώνουμε δύο μεταβλητές - η μία είναι μια ανυπόγραφη ακέραια τιμή 'Val_0' και η άλλη είναι μια ακέραια τιμή 'Val_1'. Στη συνέχεια, ορίζουμε μια άλλη ανυπόγραφη ακέραια μεταβλητή που είναι «αποτέλεσμα» για να διατηρήσει την προκύπτουσα τιμή μετά την αριστερή μετατόπιση του ανυπόγραφου ακέραιου. Δεν μπορούμε να αποθηκεύσουμε το αποτέλεσμα σε μια μεταβλητή τύπου ακέραιου γιατί μετά την αριστερή μετατόπιση, το αποτέλεσμα είναι μια τιμή χωρίς υπογραφή. Η δήλωση 'Val_0 << Val_1' αριστερά μετατοπίζει τον αριστερό τελεστή που είναι μια ανυπόγραφη ακέραια τιμή. Παράγει μια ανυπόγραφη ακέραια τιμή. Στο τέλος, εμφανίστε το αποτέλεσμα στην οθόνη εξόδου με το κείμενο 'The left shift is' χρησιμοποιώντας τη μέθοδο Console.Write():

Παράδειγμα 3:

Σε αυτήν την περίπτωση, θα μιλήσουμε για τις διαφορετικές μεθόδους χρήσης του τελεστή Bitwise αριστερής μετατόπισης (<<) σε μεγάλες ακέραιες τιμές.

χρησιμοποιώντας το σύστημα.

Πρόγραμμα τάξης_3
{
στατικό κενό Κύριο ( ) {
μεγάλος αριθμός_0 = Τέσσερα πέντε ;
μεγάλος αριθμός_1 = 5 ;

Console.Write ( 'Η αριστερή μετατόπιση του μακρού είναι' ) ;
Κονσόλα.WriteLine ( αριθμός_0 << 3 ) ;
Console.Write ( 'Η αριστερή μετατόπιση του μακρού είναι' ) ;
Console.Write ( αριθμός_0 << Convert.ToInt16 ( νούμερο 1 ) ) ;
}
}

Η αρχικοποίηση δύο μεταβλητών μεγάλου ακέραιου τύπου, 'number_0' και 'number_1', γίνεται στην πρώτη πρόταση. Επικαλέστε τη συνάρτηση Console.Write() για να αναπαραστήσετε το μήνυμα 'The left shift of long is' και το αποτέλεσμα στο τερματικό. Εδώ, εφαρμόζουμε τον αριστερό τελεστή shift (<<) με τέτοιο τρόπο ώστε να τοποθετούμε τον πρώτο τελεστή ως πρώτη μεταβλητή και τον δεύτερο τελεστή ως ακέραια τιμή. Ο μεταγλωττιστής αριστερά μετατοπίζει τον πρώτο τελεστή που είναι 'number_0' κατά 3 και εμφανίζει το αποτέλεσμα. Στην επόμενη δήλωση, εκτυπώστε ένα άλλο μήνυμα στην οθόνη χρησιμοποιώντας τη μέθοδο Console.Write(). Εδώ, χρησιμοποιούμε την πρώτη μεταβλητή, 'number_0', ως πρώτο τελεστή και τη δεύτερη μεταβλητή, 'number_1', ως δεύτερο τελεστή. Ο δεύτερος τελεστής πρέπει να είναι μια τιμή ακέραιου τύπου. Πληκτρολογούμε τη δεύτερη μεταβλητή 'number_1' στον ακέραιο τύπο χρησιμοποιώντας τη συνάρτηση Convert.ToInt16(). Στη συνέχεια, εμφανίστε το αποτέλεσμα στην κονσόλα:

Παράδειγμα 4:

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

χρησιμοποιώντας το σύστημα.

Πρόγραμμα τάξης_4
{
στατικό κενό Κύριο ( ) {
αριθμός κεφαλής_0 = 445 ;

Console.Write ( 'Η αριστερή μετατόπιση του ulong είναι' ) ;
Κονσόλα.WriteLine ( αριθμός_0 << 8 ) ;
Console.Write ( 'Η αριστερή μετατόπιση του ulong είναι' ) ;
Κονσόλα.WriteLine ( αριθμός_0 << 16 ) ;
Console.Write ( 'Η αριστερή μετατόπιση του ulong είναι' ) ;
Κονσόλα.WriteLine ( αριθμός_0 << 32 ) ;

}
}

Πρώτα, δηλώστε μια ανυπόγραφη μεταβλητή ακέραιου τύπου που είναι 'number_0'. Στη συνέχεια, εμφανίστε το κείμενο 'The left shift of ulong is' στο τερματικό καλώντας τη μέθοδο Console.Write(). Θα βρούμε την αριστερή μετατόπιση του 'number_0' κατά μια ακέραια τιμή 8 και δεν χρειάζεται να αποθηκεύσουμε το αποτέλεσμα πουθενά. Η συνάρτηση Console.WriteLine() εκτυπώνει το αποτέλεσμα στην κονσόλα. Επαναλάβετε αυτή τη διαδικασία δύο φορές και αλλάξτε τις τιμές του δεύτερου τελεστή. Κάνοντας αυτό, μπορούμε να βρούμε την αριστερή μετατόπιση μιας μεγάλης ανυπόγραφης τιμής ακέραιου τύπου. Αλλά αν θέλουμε να αποθηκεύσουμε την προκύπτουσα τιμή σε μια μεταβλητή, θα πρέπει να κρατήσουμε στη σκέψη ότι το αποτέλεσμα είναι του ίδιου τύπου με τον πρώτο τελεστή. Η μόνη διαφορά μεταξύ της Console.Write() και της Console.WriteLine() είναι ότι η δεύτερη συνάρτηση εκτυπώνει το αποτέλεσμα και στέλνει τον κέρσορα στην επόμενη γραμμή ενώ η πρώτη συνάρτηση εκτυπώνει μόνο το αποτέλεσμα και ο δρομέας αναβοσβήνει στην ίδια γραμμή ακόμα και μετά εμφανίζει την έξοδο.

συμπέρασμα

Εξερευνήσαμε τους τελεστές Bitwise στην C#, τους τύπους και τις λειτουργίες τους. Ο τελεστής αριστερού shift (<<) εφαρμόζεται για να μετατοπίσει τον αριθμό ή την τιμή κατά τον καθορισμένο αριθμό bit προς τα αριστερά. Οι τελεστές Bitwise βελτιώνουν την αποτελεσματικότητα του κώδικα και δεν επιβαρύνει το σύστημα αφού είναι ελαφρύς τελεστές. Η CPU (μονάδα επεξεργασίας υπολογιστή) λειτουργεί σε επίπεδο Bitwise κάθε φορά που εκτελούμε αριθμητικές πράξεις. Με λίγα λόγια, οι τελεστές Bitwise είναι σημαντικοί στον προγραμματισμό και το C# υποστηρίζει όλους τους τελεστές Bitwise στους οποίους ο τελεστής αριστερού shift (<<) είναι ένας από αυτούς.