JavaScript Υπολογισμοί Μέρους

JavaScript Υπολογισμοί Μέρους

Απλούστευση Όνομα Περιγραφή
& AND Αν και τα δύο bits είναι 1, τότε ορίζεται κάθε bit ως 1
| OR Αν ένα από τα δύο bits είναι 1, τότε ορίζεται κάθε bit ως 1
^ XOR Αν δύο bits έχουν μόνο ένα 1, τότε ορίζεται κάθε bit ως 1
~ NOT Αναστροφή όλων των bits
<< Διαδρομή αριστερά με συμπλήρωση μηδενίων Με την εισαγωγή του μηδενικού στο δεξί και την αριστερή μετακίνηση, αφήνοντας το αριστερότερο bit να εξαφανιστεί.
>> Διαδρομή δεξιά με σημαντικός Με την εισαγωγή της αντιγράφου του αριστερού bit στο αριστερό και την αριστερή μετακίνηση προς τα δεξιά, αφήνοντας το δεξιότερο bit να εξαφανιστεί.
>>> Διαδρομή δεξιά με συμπλήρωση μηδενίων Με την εισαγωγή του μηδενικού στο αριστερό και την αριστερή μετακίνηση προς τα δεξιά, αφήνοντας το δεξιότερο bit να εξαφανιστεί.

παράδειγμα

Εκτέλεση Ε 결과 ίδιο Ε 결과
5 & 1 1 0101 & 0001 0001
5 | 1 5 0101 | 0001 0101
5 ^ 1 4 0101 ^ 0001 0100
~ 5 10 ~0101 1010
5 << 1 10 0101 << 1 1010
5 >> 1 2 0101 >> 1 0010
5 >>> 1 2 0101 >>> 1 0010

Το JavaScript χρησιμοποιεί 32-ψηφιαία δισεκατομμυριαστιαγώγισμα

Το JavaScript αποθηκεύει τα αριθμήματα ως 64-ψηφιαία δεκαδικά αριθμήματα, αλλά όλες οι δισεκατομμυριαστιαγώγισμα εκτελούνται ως 32-ψηφιαία δισεκατομμυριαστιαγώγισμα.

Πριν από την εκτέλεση της δισεκατομμυριαστιαγώγισμα, το JavaScript θα μετατρέψει το αριθμό σε 32-ψηφιαίο υπολογιστικό στοιχείο με πρόσημο.

Μετά την εκτέλεση της δισεκατομμυριαστιαγώγισμα, το αποτέλεσμα θα μετατραπεί σε 64-ψηφιαίο αριθμό του JavaScript.

Το παράδειγμα χρησιμοποιεί 4-ψηφιαία ανυπολογιστικά στοιχεία. Επομένως, το ~5 επιστρέφει 10.

Επειδή το JavaScript χρησιμοποιεί 32-ψηφιαία υπολογιστικά στοιχεία με πρόσημο, το JavaScript θα επιστρέψει -6.

00000000000000000000000000000101 (5)

11111111111111111111111111111010 (~5 = -6)

Για τα υπολογιστικά στοιχεία με πρόσημο, χρησιμοποιείται το αριστερότερο ψηφίο ως μінους.

Δισεκατομμυριαστιαγώγισμα AND

Όταν εκτελείται δισεκατομμυριαστιαγώγισμα AND σε ζευγάρι ψηφίων, αν τα ψηφία είναι όλα 1 επιστρέφει 1.

Ενότητα παράδειγμα:

Ε τύπος Ε 결과
0 & 0 0
0 & 1 0
1 & 0 0
1 & 1 1

Τέσσερα ψηφία παράδειγμα:

Ε τύπος Ε 결과
1111 & 0000 0000
1111 & 0001 0001
1111 & 0010 0010
1111 & 0100 0100

Δισεκατομμυριαστιαγώγισμα OR

Όταν εκτελείται δισεκατομμυριαστιαγώγισμα OR σε ζευγάρι ψηφίων, αν το ένα από τα ψηφία είναι 1 επιστρέφει 1:

Ενότητα παράδειγμα

Ε τύπος Ε 결과
0 | 0 0
0 | 1 1
1 | 0 1
1 | 1 1

Τέσσερα ψηφία υπολογισμός:

Εκτέλεση Ε 결과
1111 | 0000 1111
1111 | 0001 1111
1111 | 0010 1111
1111 | 0100 1111

Δισεκατομμυριαστιαγώγισμα XOR

Όταν εκτελείται δισεκατομμυριαστιαγώγισμα XOR σε ζευγάρι ψηφίων, αν τα ψηφία είναι διαφορετικά επιστρέφει 1:

Ενότητα παράδειγμα:

Ε τύπος Ε 결과
0 ^ 0 0
0 ^ 1 1
1 ^ 0 1
1 ^ 1 0

Τέσσερα ψηφία παράδειγμα:

Ε τύπος Ε 결과
1111 ^ 0000 1111
1111 ^ 0001 1110
1111 ^ 0010 1101
1111 ^ 0100 1011

JavaScript δισεκατομμυριαστιαγώγισμα AND (&)

Αν τα ψηφία είναι όλα 1, η δισεκατομμυριαστιαγώγισμα AND επιστρέφει 1:

δεκαδικός δισδιάστατος
5 00000000000000000000000000000101
1 00000000000000000000000000000001
5 & 1 00000000000000000000000000000001 (1)

παράδειγμα

var x = 5 & 1;

Δοκιμάστε το προσωπικά

JavaScript δισεκατομμυριαστιαγώγισμα OR (|)

Αν κάποια θέση είναι 1, η αριθμητική κίνηση OR επιστρέφει 1:

δεκαδικός δισδιάστατος
5 00000000000000000000000000000101
1 00000000000000000000000000000001
5 | 1 00000000000000000000000000000101 (5)

παράδειγμα

var x = 5 | 1;

Δοκιμάστε το προσωπικά

XOR (^)

Αν οι θέσεις είναι διαφορετικές, το XOR επιστρέφει 1:

δεκαδικός δισδιάστατος
5 00000000000000000000000000000101
1 00000000000000000000000000000001
5 ^ 1 00000000000000000000000000000100 (4)

παράδειγμα

var x = 5 ^ 1;

Δοκιμάστε το προσωπικά

NOT (~)

δεκαδικός δισδιάστατος
5 00000000000000000000000000000101
~5 11111111111111111111111111111010 (-6)

παράδειγμα

var x = ~5;

Δοκιμάστε το προσωπικά

Αριστερή κίνηση με συμπληρώσεις μηδενίων (<<)

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

δεκαδικός δισδιάστατος
5 00000000000000000000000000000101
5 << 1 00000000000000000000000000001010 (10)

παράδειγμα

var x = 5 << 1;

Δοκιμάστε το προσωπικά

Δεξιά κίνηση με διατήρηση του σημείου (>>)

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

δεκαδικός δισδιάστατος
-5 11111111111111111111111111111011
-5 >> 1 11111111111111111111111111111101 (-3)

παράδειγμα

var x = -5 >> 1;

Δοκιμάστε το προσωπικά

Δεξιά κίνηση με συμπληρώσεις μηδενίων (>>>)

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

δεκαδικός δισδιάστατος
5 00000000000000000000000000000101
5 >>> 1 00000000000000000000000000000010 (2)

παράδειγμα

var x = 5 >>> 1;

Δοκιμάστε το προσωπικά

32-bit υποκείμενα ακέραια (δισδιάστατοι αριθμοί)

Η κατανόηση μιας 32-bit ακέραιας τιμής με μοναδικό σημείο είναι πολύ εύκολη:

δυαδική εκδήλωση δεκαδική τιμή
00000000000000000000000000000001 1
00000000000000000000000000000010 2
00000000000000000000000000000100 4
00000000000000000000000000001000 8
00000000000000000000000000010000 16
00000000000000000000000000100000 32
00000000000000000000000001000000 64

Περισσότερες θέσεις αποκαλύπτουν το μοτίβο του δυαδικού:

δυαδική εκδήλωση δεκαδική τιμή
00000000000000000000000000000101 5 (4 + 1)
00000000000000000000000000101000 40 (32 + 8)
00000000000000000000000000101101 45 (32 + 8 + 4 + 1)

Οι αρνητικές αριθμοί είναι η δυαδική αντιγραφή του θετικού αριθμού加上 1:

δυαδική εκδήλωση δεκαδική τιμή
00000000000000000000000000000101 5
11111111111111111111111111111011 -5
00000000000000000000000000101000 40
11111111111111111111111111011000 -40
11111111111111111111111111011001 -41

Μετατρέψτε το δεκαδικό σε δυαδικό

παράδειγμα

function dec2bin(dec){
    return (dec >>> 0).toString(2);
}

Δοκιμάστε το προσωπικά

Μετατρέψτε το δυαδικό σε δεκαδικό

παράδειγμα

function bin2dec(bin){
    return parseInt(bin, 2).toString(10);
}

Δοκιμάστε το προσωπικά