Διαδρομές
/
Java
Java
/
Ύλη
/
Χειρισμός bit
Χε

Χειρισμός bit σε Java

3 ασκήσεις

Σχετικά με την έννοια Χειρισμός bit

Η Java διαθέτει τελεστές για τον χειρισμό των bit ενός ακέραιου τύπου (ενός byte, short, int, long ή char).

Τελεστές ολίσθησης

Χρησιμοποίησε τον << για ολίσθηση των bit προς τα αριστερά και τον >> για ολίσθηση προς τα δεξιά.

// Shift two places to the left
0b0000_1011 << 2;
// # => 0b0010_1100

// Shift two places to the right
0b0000_1011 >> 2;
// # => 0b0000_0010

Ο >> ονομάζεται επίσης τελεστής προσημασμένης ή αριθμητικής ολίσθησης, επειδή το bit που εισάγει είναι ίδιο με το bit προσήμου του. Αυτό είναι το πιο αριστερό bit και είναι 0 αν η τιμή είναι θετική ή 1 αν είναι αρνητική. Η ολίσθηση προς τα αριστερά με τον << εισάγει πάντα 0 στη δεξιά πλευρά.

// Shift 2 places to the right preserves the sign
// The binary value is two's complement of 0b0000_0110 (or 0x00000026), so the binary representation will be
// 1000_0000_0000_0000_0000_0000_0010_0110
int value = -0x7FFFFFDA;

// Shift two places to the right, preserving the sign bit
value >> 2;
// # => 1110_0000_0000_0000_0000_0000_0000_1001

Χρησιμοποίησε αντί γι' αυτόν τον >>>, όταν κατά την ολίσθηση προς τα δεξιά θέλεις να εισαχθούν 0. Η εισαγωγή 0 κατά την ολίσθηση είναι επίσης γνωστή ως λογική ολίσθηση.

// Shift two places to the right, inserting 0s on the left
value >>> 2;
// # => 0010_0000_0000_0000_0000_0000_0000_1001

Πράξεις bitwise

Το bitwise AND

Ο τελεστής bitwise AND (&) παίρνει δύο τιμές και εκτελεί μια πράξη AND σε κάθε bit. Συγκρίνει κάθε bit της πρώτης τιμής με το bit στην ίδια θέση της δεύτερης τιμής. Αν και τα δύο είναι 1, τότε το bit του αποτελέσματος είναι 1. Διαφορετικά, το bit του αποτελέσματος είναι 0.

0b0110_0101 & 0b0011_1100;
// # => 0b0010_0100

Το bitwise OR

Ο τελεστής bitwise OR (|) παίρνει δύο τιμές και εκτελεί μια πράξη OR σε κάθε bit. Συγκρίνει κάθε bit της πρώτης τιμής με το bit στην ίδια θέση της δεύτερης τιμής. Αν ένα από τα δύο bit είναι 1, το bit του αποτελέσματος είναι 1. Διαφορετικά, είναι 0.

0b0110_0101 | 0b0011_1100;
// # => 0b0111_1101

Το bitwise XOR

Ο τελεστής bitwise XOR (^) εκτελεί μια πράξη XOR bit προς bit σε δύο τιμές. Όπως οι τελεστές bitwise AND και bitwise OR, συγκρίνει κάθε bit της πρώτης τιμής με το bit στην ίδια θέση της δεύτερης τιμής. Αν μόνο ένα από τα δύο είναι 1, το bit που προκύπτει είναι 1. Διαφορετικά, είναι 0.

0b0110_0101 ^ 0b0011_1100;
// # => 0b0101_1001

Το bitwise NOT(~)

Τέλος, ο τελεστής bitwise NOT (~) αντιστρέφει κάθε bit. Σε αντίθεση με τους προηγούμενους τελεστές, αυτός είναι μονομελής τελεστής και δρα σε μία μόνο τιμή.

~0b0110_0101;
// # => 0b1001_1010
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Χειρισμός bit