What is the bitwise operator in Java with an example?

Ellen 177 Published: 09/16/2024

What is the bitwise operator in Java with an example?

I'm glad to respond in English for you!

In Java, a bitwise operator is used to perform operations on the binary representation of integers. Bitwise operators work with the individual bits of an integer, allowing you to manipulate specific parts of the number.

Java provides five bitwise operators:

& (AND): Performs a logical AND operation on each bit of two operands.

| (OR): Performs a logical OR operation on each bit of two operands. ^ (XOR): Performs a logical XOR operation on each bit of two operands. ~ (NOT): Inverts all the bits of an integer, equivalent to a bitwise NOT. << (Left Shift) and >> (Right Shift): Shifts the binary representation of an integer left or right.

Let's take an example to illustrate how these operators work:

Suppose we have two integers, a = 12 and b = 15. In binary format, they are represented as:

a = 00001100

b = 00001111

Now, let's use the bitwise AND operator (&) on these two numbers:

int result = a & b;

The bitwise AND operation compares each bit of a and b. If both bits are 1 (true), the resulting bit is set to 1. Otherwise, it's set to 0.

In this case, the AND operation produces:

result = 00000100

As you can see, the result has bits set only where both a and b had bits set. This is because the bitwise AND operator returns 1 only if all corresponding bits are 1 in both operands.

Here's another example using the bitwise OR (|) operator:

int result = a | b;

The OR operation compares each bit of a and b. If either bit (or both) is 1, the resulting bit is set to 1. Otherwise, it's set to 0.

In this case, the OR operation produces:

result = 00001111

As you can see, the result has bits set where at least one of a or b had a bit set. This is because the bitwise OR operator returns 1 if either operand (or both) has a 1 in that position.

The other bitwise operators (XOR, NOT, Left Shift, and Right Shift) work similarly, but with different logical operations:

XOR: Sets bits where corresponding bits are different between two operands. NOT: Inverts all the bits of an integer. Left Shift: Shifts the binary representation left by a specified number of positions (filling in with zeros on the right). Right Shift: Shifts the binary representation right by a specified number of positions, filling in with zeros on the left.

These bitwise operators are useful when working with binary data or bit-level operations. They're essential for programming tasks like data encryption, compression, and error detection.

Bitwise NOT operator in Java

I'd be happy to help!

The bitwise NOT operator, also known as the bitwise complement operator, is represented by the symbol "~" (tilde). It flips or changes all the bits of a number.

Let's take an example to illustrate how this works:

int num = 5; // binary representation: 00000101

// bitwise NOT

int notNum = ~num;

System.out.println(notNum); // output: -6 (binary: 11111010)

As you can see, the value of "notNum" is negative and its binary representation is the complement of the original number.

Now, let's talk about how bitwise NOT works:

It flips all bits: This means that if a bit is set to 1 in the original number, it becomes 0 in the result (and vice versa). It preserves the sign: For negative numbers, the sign is preserved; for positive numbers, the result will also be positive.

Here's another example:

int num = -8; // binary representation: 10000100

// bitwise NOT

int notNum = ~num;

System.out.println(notNum); // output: 7 (binary: 00000111)

In this case, the sign of the number is preserved, and all bits are flipped.

Bitwise NOT is useful for various tasks:

Reversing a mask: When you need to create a mask that will disable certain bits in an original value, bitwise NOT can be used. Checking if a bit is set: By performing a bitwise AND operation with the result of bitwise NOT, you can check if a particular bit is set or not. Generating all possible values for a bit position: If you want to test all possible values for a specific bit in an enumeration, bitwise NOT can help.

Overall, the bitwise NOT operator is a useful tool in Java and other programming languages, offering a convenient way to manipulate bits and flip their state.

Would you like me to provide more examples or discuss related topics?