Whats the Output. of this.....?

byte b = -13;

b >>>= 1;

System.out.println(b);

b >>>= 1;

System.out.println(b);

Shift operator not on the 310-055 exam!

Anyways I think you are going for 1.4.

Here you go!

Let us see what output comes:

(11110011) = -13 (2's complement representation of -13)

-13 >>> 1

(**1**1111001) = -7 (2's complement representation of -7)

So the output is -7

Got it Manoj?

Regards,

cmbhatt

[ April 20, 2007: Message edited by: Chandra Bhatt ]

Anyways I think you are going for 1.4.

Here you go!

Let us see what output comes:

(11110011) = -13 (2's complement representation of -13)

-13 >>> 1

(

So the output is -7

Got it Manoj?

Regards,

cmbhatt

[ April 20, 2007: Message edited by: Chandra Bhatt ]

I dont think its the right answer....

>>> is unsigned right hift operator

>>> is unsigned right hift operator

Hi John,

I would like to know the correct answer. How >>> operator works.

Although it is not on the exam (310-055).

>>> Shift right, filling with zeros from left;

Regards,

cmbhatt

I would like to know the correct answer. How >>> operator works.

Although it is not on the exam (310-055).

>>> Shift right, filling with zeros from left;

Regards,

cmbhatt

byte b = -42; // 1101 0110

int result = b >>> 4; // 268435453

It is instructive to compare the value of the expression (-42 >>> 4) with that of the expression (-42 >> 4), which has the value -3. The byte value for b, after unary numeric promotion to int, is shifted right with zero-fill four places.

b >>> 4

= 1111 1111 1111 1111 1111 1111 1101 0110 >>> 4

= 0000 1111 1111 1111 1111 1111 1111 1101

= 0x0ffffffd

= 268435453

But in the asked question since we are using an assigment operator the casting is done by the operator implicitly so

0111 1111 1111 1111 1111 1111 1111 1001 the higher order bits are dropped

and what results is 1111 1001 which is -7.

int result = b >>> 4; // 268435453

It is instructive to compare the value of the expression (-42 >>> 4) with that of the expression (-42 >> 4), which has the value -3. The byte value for b, after unary numeric promotion to int, is shifted right with zero-fill four places.

b >>> 4

= 1111 1111 1111 1111 1111 1111 1101 0110 >>> 4

= 0000 1111 1111 1111 1111 1111 1111 1101

= 0x0ffffffd

= 268435453

But in the asked question since we are using an assigment operator the casting is done by the operator implicitly so

0111 1111 1111 1111 1111 1111 1111 1001 the higher order bits are dropped

and what results is 1111 1001 which is -7.

Wink, wink, nudge, nudge, say no more ... https://richsoil.com/cards

This thread has been viewed 721 times.

All times above are in ranch (not your local) time.

The current ranch time is

May 26, 2018 21:24:42.

The current ranch time is

May 26, 2018 21:24:42.