programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

# Bitwise operator left shifting

Ranch Hand
Posts: 95
Hi all,

Im trying to execute the below program, im not able to understand the leftshifting functionality

public class shiftdemo
{
public static void main(String[] args)
{
System.out.println("14 in binary format is:");
System.out.println("1110 \n");
System.out.println("Now right shifting the bits by 2");
System.out.println("14>>2="+(14>>2));
System.out.println("now left shifting the bits by 2");
System.out.println("14<<2="+(14<<2));
}
}
Output

C:\PROGRA~1\Java\JDK15~1.0_0\bin>java shiftdemo
14 in binary format is:
0000 00000 0000 1110

Now right shifting the bits by 2
14>>2=3
now left shifting the bits by 2
14<<2=56

Rancher
Posts: 3742
16
0000 00000 0000 1110
and shift all the bits right by two places you get
0000 00000 0000 0011 (the rightmost two bits are lost)
which is 3

0000 00000 0000 1110
and shift all the bits left by two places you get
0000 00000 0011 1000 (the two empty bits on the right are filled with zero)
which is 56
[ November 21, 2008: Message edited by: Joanne Neal ]

Ranch Hand
Posts: 176
yes what joanne says is write because each bit is worth 2^n where n is equal the bit's position from the right starting from 0.

so:
0000 00000 0000 1110 [Base-2] =
2^3 + 2^2 + 2^1 [Base-10] = 14

0000 00000 0000 0011 [Base-2] =
2^1 + 2^0 [Base-10] = 3

0000 00000 0011 1000 [Base-2] =
2^5 + 2^4 + 2^3 [Base-10] = 56

Just pointed that out in case you didn't know about binary numbers

Varshini Priya
Ranch Hand
Posts: 95
Thanks all for the detailed explanation

Sheriff
Posts: 57817
178

Originally posted by Olivier Legat:
yes what joanne says is write because each bit is worth 2^n . . .

Except for the signed numbers (byte short int long) where the very first bit on the left is worth minus2^n.

Campbell Ritchie
Sheriff
Posts: 57817
178
And please find the code button and indent your code; it makes it much easier to read.