A Bitwise And operator is represented as ‘&’ and a logical operator is represented as ‘&&’. Following are some basic differences between the two operators.
a) The logical and operator ‘&&’ expects its operands to be boolean expressions (either 1 or 0) and returns a boolean value.
The bitwise and operator ‘&’ works on Integral (short, int, unsigned, char, bool, unsigned char, long) values and return Integral value.
y is greater than 1 AND y z = 3.
b) If an integral value is used as an operand for ‘&&’ which is supposed to work on boolean values, following rule is used in C.
…..A zero is considered as false and non-zero is considered as true.
For example in the following program x and y are considered as 1.
It is compiler error to use non-integral expression as operand for bitwise &. For example the following program shows compiler error.
error: invalid operands to binary & (have 'float' and 'float')
c) The ‘&&’ operator doesn’t evaluate second operand if first operand becomes false. Similarly ‘||’ doesn’t evaluate second operand when first operand becomes true. The bitwise ‘&’ and ‘|’ operators always evaluate their operands.
0 Geeks in & 0
The same differences are there between logical OR ‘||’ and bitwise OR ‘|’.
This article is contributed by Ujjwal Jain. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Operators in C | Set 2 (Relational and Logical Operators)
- Order of operands for logical operators
- Bitwise Operators in C/C++
- Bitwise right shift operators in Java
- Check if a number is divisible by 17 using bitwise operators
- Check if a number is multiple of 9 using bitwise operators
- Toggle case of a string using Bitwise Operators
- Check if a number is divisible by 8 using bitwise operators
- Russian Peasant (Multiply two numbers using bitwise operators)
- Case conversion (Lower to Upper and Vice Versa) of a string using BitWise operators in C/C++
- Code Optimization Technique (logical AND and logical OR)
- Total pairs in an array such that the bitwise AND, bitwise OR and bitwise XOR of LSB is 1
- Leftover element after performing alternate Bitwise OR and Bitwise XOR operations on adjacent pairs
- Find subsequences with maximum Bitwise AND and Bitwise OR
- Operators in C | Set 1 (Arithmetic Operators)