Home  >  Article  >  Java  >  Bitwise vs. Boolean Operators: What\'s the Difference Between `&` vs. `&&` and `|` vs. `||`?

Bitwise vs. Boolean Operators: What\'s the Difference Between `&` vs. `&&` and `|` vs. `||`?

DDD
DDDOriginal
2024-11-18 07:22:02383browse

Bitwise vs. Boolean Operators: What's the Difference Between `&` vs. `&&` and `|` vs. `||`?

Understanding Bitwise vs. Boolean Operators: & vs. && and | vs. ||

In programming, the symbols & and | represent bitwise operators, while && and || represent boolean logical operators. While these seem similar, there are crucial differences in how they function.

Bitwise Operators: && and |

Bitwise operators perform operations on individual bits within binary numbers. For example:

int a = 6; // Binary: 110
int b = 4; // Binary: 100

int c = a & b; // Bitwise AND
int d = a | b; // Bitwise OR

In this case, the obtained values are:

  • c = 4 (binary: 100)
  • d = 6 (binary: 110)

When performing a bitwise AND, each bit position in the operands is compared. If both corresponding bits are 1, the result bit in the corresponding position is 1; otherwise, it is 0. Conversely, in a bitwise OR, the result bit is 1 if at least one corresponding bit in the operands is 1; otherwise, it is 0.

Boolean Logical Operators: && and ||

Boolean logical operators work with boolean values (true or false). They follow similar rules to bitwise operators, but:

  • && (AND) returns true only if both operands are true.
  • || (OR) returns true if at least one operand is true.

Unlike bitwise operators, boolean logical operators are short-circuiting, meaning they don't evaluate all operands if the result can be determined earlier. This prevents exceptions from being raised when evaluating null values.

The above is the detailed content of Bitwise vs. Boolean Operators: What\'s the Difference Between `&` vs. `&&` and `|` vs. `||`?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn