option B.

Note that **<<<** is logical shift Right ===> sign extension doesn't takes place

0 votes

What does the following Java function perform? (Assume int occupies four bytes of storage)

public static int f(int a) { // Pre-conditions : a > 0 and no oveflow/underflow occurs int b=0; for (int i=0; i<32; i++) { b = b<<1; b=b | ( a & 1); a=a >>>1; // This is a logical shift } return b; }

- Returns the int that has the binary representation of integer a
- Return the int that has reversed binary representation of integer a
- Return the int that represents the number of $1$’s in the binary representation of integer a
- Return the int that represents the number of $0$’s in the binary representation of integer a