Τελεστές Bitwise JavaScript (με παραδείγματα)

Πίνακας περιεχομένων

Σε αυτό το σεμινάριο, θα μάθετε για τους χειριστές bitwise JavaScript και τους τύπους του με τη βοήθεια παραδειγμάτων.

Τελεστές Bitwise JavaScript

Οι τελεστές Bitwise αντιμετωπίζουν τους τελεστές του ως ένα σύνολο δυαδικών ψηφίων 32-bit (μηδενικά και αυτά) και εκτελούν ενέργειες. Ωστόσο, το αποτέλεσμα εμφανίζεται ως δεκαδική τιμή.

Χειριστές Ονομα Παράδειγμα
& Bitwise ΚΑΙ x & y
| Bitwise Ή x | y
^ Bitwise XOR x y
~ ΔΥΟ ΔΥΟ ~x
<< Αριστερή στροφή x << y
>> Δεξιά μετατόπιση σηματοδότησης x>> y
>>> Μηδενική στροφή δεξιά x>>> y

Σημείωση : Οι ελάχιστοι και οι μέγιστοι ακέραιοι αριθμοί που μπορούν να αναπαρασταθούν μέσω αριθμού 32 bit είναι -2147483648 έως 2147483647.

JavaScript Bitwise ΚΑΙ

Το Bitwise AND &επιστρέφει 1 εάν τα αντίστοιχα bits και των δύο τελεστών είναι 1 άλλο επιστρέφει 0 .

Λειτουργία 1 Λειτουργία 2 ΚΑΙ Λειτουργία
0 0 0 & 0είναι 0
0 1 0 & 1είναι 0
1 0 1 & 0είναι 0
1 1 1 & 1είναι 1

Ας ρίξουμε μια ματιά στη λειτουργία bitwise AND δύο ακέραιων αριθμών 12 και 25 .

 Σε δυαδικό, 12 = 01100 25 = 11001 // Bitwise ΚΑΙ Λειτουργία 12 και 25 00001100 & 00011001 --------- 00001000 = 8 (Σε δεκαδικό)

Σημείωση : Η μετατροπή δυαδικών 12 σε 32-bit μας δίνει 00000000000000000000000000001100και 25 δίνει 00000000000000000000000000011001. Ωστόσο, καταργήσαμε τα προηγούμενα μηδενικά για απλότητα.

Παράδειγμα 1: Bitwise AND Operator

 // bitwise AND operator example let a = 12; let b = 25; result = a & b; console.log(result); // 8 

Στο παραπάνω πρόγραμμα,

  • Η δυαδική τιμή του 12 είναι00000000000000000000000000001100
  • Η δυαδική τιμή του 25 είναι 00000000000000000000000000011001.
  • Όταν εκτελείται η λειτουργία bitwise AND , το δυαδικό αποτέλεσμα θα είναι το 00000000000000000000000000001000οποίο μετατρέπεται στην δεκαδική τιμή 8.

JavaScript Bitwise Ή

Το Bitwise OR |επιστρέφει 1 εάν οποιοδήποτε από τα αντίστοιχα bits ενός τελεστή είναι 1 άλλο επιστρέφει 0 .

Λειτουργία 1 Λειτουργία 2 Ή λειτουργία
0 0 0 | 0είναι 0
0 1 0 | 1είναι 1
1 0 1 | 0είναι 1
1 1 1 | 1είναι 1

Ας ρίξουμε μια ματιά στη λειτουργία bitwise Ή δύο ακέραιων αριθμών 12 και 25 .

Στο δυαδικό, 12 = 01100 25 = 11001 // Bitwise Ή λειτουργία 12 και 25 00001100 | 00011001 -------- 00011101 = 29 (με δεκαδικό)

Παράδειγμα 2: Bitwise Ή τελεστής

 // bitwise OR operator example let a = 12; let b = 25; result = a | b; console.log(result); // 29

Όταν εκτελείται η λειτουργία bitwise OR , το δυαδικό αποτέλεσμα θα είναι το 00000000000000000000000000011101οποίο μετατρέπεται στην δεκαδική τιμή 29.

JavaScript Bitwise XOR

Το Bitwise XOR ^επιστρέφει 1 εάν τα αντίστοιχα bit είναι διαφορετικά και επιστρέφει 0 εάν τα αντίστοιχα bit είναι ίδια.

Λειτουργία 1 Λειτουργία 2 Λειτουργία XOR
0 0 0 0είναι 0
0 1 0 1είναι 1
1 0 1 0είναι 1
1 1 1 1είναι 0
 Σε δυαδικό, 12 = 01100 25 = 11001 // Bitwise XOR Λειτουργία 12 και 25 00001100 00011001 -------- 00010101 = 21 (Σε δεκαδικό)

Παράδειγμα 3: Χειριστής Bitwise XOR

 // bitwise XOR operator example let a = 12; let b = 25; result = a b; console.log(result); // 21

Όταν εκτελείται η λειτουργία bitor XOR , το δυαδικό αποτέλεσμα θα είναι το 00000000000000000000000000010101οποίο μετατρέπεται σε δεκαδική τιμή 21.

JavaScript Bitwise ΟΧΙ

Bitwise NOT ~ inverts the bit( 0 becomes 1, 1 becomes 0).

 In binary, 12 = 00000000000000000000000000001100 // Bitwise Not Operation of 12 ~ 00000000000000000000000000001100 --------------------------------- 11111111111111111111111111110011 = -13(In decimal)

While converting 11111111111111111111111111110011 to decimal, the value would be 4294967283. But when using bitwise operator, the value is computed in signed 2's complement format except for zero-fill right shift.

2's complement is computed by inverting the bits(1's complement) and then adding 1. For example,

 13 in binary: 00000000000000000000000000001101 1's complement of 13: 11111111111111111111111111110010 2's complement of 13: 11111111111111111111111111110010 +1 --------------------------------- 11111111111111111111111111110011

Notice the 2's complement of 13 (i.e. -13) is 11111111111111111111111111110011. This value is equivalent to the bitwise NOT of 12.

Example 4: Bitwise NOT Operator

 // bitwise NOT operator example let b = 12; result = ~b; console.log(result); // -13

When bitwise NOT operation is performed, the binary result will be 11111111111111111111111111110011 which converts into the decimal value -13.

Note: Bitwise NOT of a number x gives -(x + 1). Notice above ~2 gives -3.

JavaScript Left shift

Στον <<τελεστή αριστεράς αλλαγής , ο αριστερός τελεστής καθορίζει τον αριθμό και ο δεξιός τελεστής καθορίζει τον αριθμό που θα μετακινηθεί αριστερά. Τα μηδενικά bit προστίθενται στα δεξιά και τα επιπλέον bit από τα αριστερά απορρίπτονται.

Ένα bit αριστερά μετατόπιση σε JavaScript

Για παράδειγμα,

 let a = 8; let b = 1; result = a << b; // 1 ( 00000000000000000000000000010000 ) console.log(result);

Σωστή μετατόπιση σηματοδότησης JavaScript

Στον >>τελεστή δεξιάς αλλαγής , ο πρώτος τελεστής καθορίζει τον αριθμό και ο δεύτερος τελεστής καθορίζει τον αριθμό που θα μετατοπιστεί δεξιά. Τα υπερβολικά κομμάτια από τα δεξιά απορρίπτονται. Τα αντίγραφα του αριστερότερου bit μετατοπίζονται από τα αριστερά, εξ ου και το όνομα διαδίδεται.

Μία bit δεξιά μετατόπιση με σύμβολο διάδοσης συμπληρώστε JavaScript

Για παράδειγμα,

 let a = 8; let b = 1; // 11111111111111111111111111111101 let c = -3; result = a>> b; result1 = c>> b; // 4 (00000000000000000000000000000100) console.log(result); // -1 (11111111111111111111111111111111) console.log(result1); 

JavaScript Μηδενική πλήρωση δεξιά μετατόπιση

Η δεξιά μετατόπιση μηδενικής πλήρωσης >>>μετατοπίζει τον τελεστή προς τα δεξιά γεμίζοντας τα μηδενικά ψηφία προς τα αριστερά. Τα υπερβολικά κομμάτια από τα δεξιά απορρίπτονται.

Μία bit δεξιά μετατόπιση με μηδενική συμπλήρωση JavaScript

Για παράδειγμα,

 let a = 8; let b = 1; let c = -3; result = a>>> b; result1 = c>>> b; // 4 (00000000000000000000000000000100) console.log(result); // 1073741823 (00111111111111111111111111111111) console.log(result);

ενδιαφέροντα άρθρα...