Java MCQs on Bitwise operators of Java Programming Language.
1. Which of these is not a bitwise operator? Answer: d 2. Which operator is used to invert all the digits in a binary representation of a number? Answer: a 3. On applying Left shift operator, <<, on integer bits are lost one they are shifted past which position bit? Answer: d 4. Which right shift operator preserves the sign of the value? Answer: b 5. Which of these statements are incorrect? Answer: d 6. What will be the output of the following Java program? a) 42 42 7. What will be the output of the following Java program? a) 7 2 8. What will be the output of the following Java program? a) 0 64 9. What will be the output of the following Java program? a) 10 10. What will be the output of the following Java program? a) 3 1 6
a) &
b) &=
c) |=
d) <=
Clarification: <= is a relational operator.
a) ~
b) <<<
c) >>>
d) ^
Clarification: Unary not operator, ~, inverts all of the bits of its operand in binary representation.
a) 1
b) 32
c) 33
d) 31
Clarification: The left shift operator shifts all of the bits in a value to the left specified number of times. For each shift left, the high order bit is shifted out and lost, zero is brought in from the right. When a left shift is applied to an integer operand, bits are lost once they are shifted past the bit position 31.
a) <<
b) >>
c) <<=
d) >>=
Clarification: None.
a) The left shift operator, <<, shifts all of the bits in a value to the left specified number of times
b) The right shift operator, >>, shifts all of the bits in a value to the right specified number of times
c) The left shift operator can be used as an alternative to multiplying by 2
d) The right shift operator automatically fills the higher order bits with 0
Clarification: The right shift operator automatically fills the higher order bit with its previous contents each time a shift occurs. This also preserves the sign of the value.
class bitwise_operator
{
public static void main(String args[])
{
int var1 = 42;
int var2 = ~var1;
System.out.print(var1 + " " + var2);
}
}
b) 43 43
c) 42 -43
d) 42 43
Clarification: Unary not operator, ~, inverts all of the bits of its operand. 42 in binary is 00101010 in using ~ operator on var1 and assigning it to var2 we get inverted value of 42 i:e 11010101 which is -43 in decimal.
output:
$ javac bitwise_operator.java
$ java bitwise_operator
42 -43
class bitwise_operator
{
public static void main(String args[])
{
int a = 3;
int b = 6;
int c = a | b;
int d = a & b;
System.out.println(c + " " + d);
}
}
b) 7 7
c) 7 5
d) 5 2
Clarification: And operator produces 1 bit if both operand are 1. Or operator produces 1 bit if any bit of the two operands in 1.
output:
$ javac bitwise_operator.java
$ java bitwise_operator
7 2
class leftshift_operator
{
public static void main(String args[])
{
byte x = 64;
int i;
byte y;
i = x << 2;
y = (byte) (x << 2)
System.out.print(i + " " + y);
}
}
b) 64 0
c) 0 256
d) 256 0
Clarification: None.
output:
$ javac leftshift_operator.java
$ java leftshift_operator
256 0
class rightshift_operator
{
public static void main(String args[])
{
int x;
x = 10;
x = x >> 1;
System.out.println(x);
}
}
b) 5
c) 2
d) 20
Clarification: Right shift operator, >>, devides the value by 2.
output:
$ javac rightshift_operator.java
$ java rightshift_operator
5
class Output
{
public static void main(String args[])
{
int a = 1;
int b = 2;
int c = 3;
a |= 4;
b >>= 1;
c <<= 1;
a ^= c;
System.out.println(a + " " + b + " " + c);
}
}
b) 2 2 3
c) 2 3 4
d) 3 3 6
Clarification: None.
output:
$ javac Output.java
$ java Output
3 1 6