Bitwise operations in Java
Abhinav Pandey
Posted on April 9, 2021
Bitwise complement
Using the symbol ~ you can get the bitwise complement of an integer.
It will reverse each bit of the binary representation including the sign.
int a = 2; // binary 0,00..10 (4 byte signed binary representation)
int b = ~a; // returns -3 -> binary 1,11...01 (sign changed and each bit reversed)
Bitwise AND, OR, XOR
int a = 3; // 011
int b = 5; // 101
int c = a & b; // 001 -> 1 if both bits are 1
int d = a | b; // 111 -> 1 if either it is 1
int e = a ^ b; // 110 -> 1 if both bits are different
Shifting bytes
- Signed left shift - "<<" - shift each bit to the left. Add 0s to the empty space on the right.
- Signed right shift - ">>" - shift each bit to the right. Add 0s/1s (depending on sign, 0 for positive and 1 for negative numbers) to the empty space on the left.
- Unsigned right shift - ">>>" - shift each bit to the right. Add 0s to the empty space on the left. For negative numbers, this means that they will be converted to positive.
Some examples:
int a = -3; // 1111...11011
int b = 5; // 0000...00101
int c = a << 1; // 1111...10110
int d = b << 2; // 0000...10100
int e = a >> 2; // 1111...11110
int f = b >> 2; // 0000...00001
int g = a >>> 2; // 0011...11110
💖 💪 🙅 🚩
Abhinav Pandey
Posted on April 9, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
watercooler Why does a reboot make your PC run SO much faster than running all the cleaning tools you can possibly imagine?
November 30, 2024