Σε αυτό το σεμινάριο, θα μάθετε για τους χειριστές 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 από τα αριστερά απορρίπτονται.

Για παράδειγμα,
let a = 8; let b = 1; result = a << b; // 1 ( 00000000000000000000000000010000 ) console.log(result);
Σωστή μετατόπιση σηματοδότησης JavaScript
Στον >>
τελεστή δεξιάς αλλαγής , ο πρώτος τελεστής καθορίζει τον αριθμό και ο δεύτερος τελεστής καθορίζει τον αριθμό που θα μετατοπιστεί δεξιά. Τα υπερβολικά κομμάτια από τα δεξιά απορρίπτονται. Τα αντίγραφα του αριστερότερου bit μετατοπίζονται από τα αριστερά, εξ ου και το όνομα διαδίδεται.

Για παράδειγμα,
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 Μηδενική πλήρωση δεξιά μετατόπιση
Η δεξιά μετατόπιση μηδενικής πλήρωσης >>>
μετατοπίζει τον τελεστή προς τα δεξιά γεμίζοντας τα μηδενικά ψηφία προς τα αριστερά. Τα υπερβολικά κομμάτια από τα δεξιά απορρίπτονται.

Για παράδειγμα,
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);