| Author |
Strange behaviour of bit shifting
|
Alvin Lee
Greenhorn
Joined: Aug 22, 2002
Posts: 3
|
|
Do anybody know why the below program produce the result as shown ?? Why int and short reproduce itself shifting for 32 bits ? Why long reproduce itself shifting for 64 bits ? Thx. class shiftTest{ public static void main(String[] args){ int a = 30; short b = 30; long c = 30; for(int i=0;i<=70;i++){ System.out.println(i+" - "+(a>>>i)+" - "+(b>>>i)+" - "+(c>>>i)); } } } Result: 0 - 30 - 30 - 30 1 - 15 - 15 - 15 2 - 7 - 7 - 7 3 - 3 - 3 - 3 4 - 1 - 1 - 1 5 - 0 - 0 - 0 6 - 0 - 0 - 0 7 - 0 - 0 - 0 8 - 0 - 0 - 0 9 - 0 - 0 - 0 10 - 0 - 0 - 0 11 - 0 - 0 - 0 12 - 0 - 0 - 0 13 - 0 - 0 - 0 14 - 0 - 0 - 0 15 - 0 - 0 - 0 16 - 0 - 0 - 0 17 - 0 - 0 - 0 18 - 0 - 0 - 0 19 - 0 - 0 - 0 20 - 0 - 0 - 0 21 - 0 - 0 - 0 22 - 0 - 0 - 0 23 - 0 - 0 - 0 24 - 0 - 0 - 0 25 - 0 - 0 - 0 26 - 0 - 0 - 0 27 - 0 - 0 - 0 28 - 0 - 0 - 0 29 - 0 - 0 - 0 30 - 0 - 0 - 0 31 - 0 - 0 - 0 32 - 30 - 30 - 0 33 - 15 - 15 - 0 34 - 7 - 7 - 0 35 - 3 - 3 - 0 36 - 1 - 1 - 0 37 - 0 - 0 - 0 38 - 0 - 0 - 0 39 - 0 - 0 - 0 40 - 0 - 0 - 0 41 - 0 - 0 - 0 42 - 0 - 0 - 0 43 - 0 - 0 - 0 44 - 0 - 0 - 0 45 - 0 - 0 - 0 46 - 0 - 0 - 0 47 - 0 - 0 - 0 48 - 0 - 0 - 0 49 - 0 - 0 - 0 50 - 0 - 0 - 0 51 - 0 - 0 - 0 52 - 0 - 0 - 0 53 - 0 - 0 - 0 54 - 0 - 0 - 0 55 - 0 - 0 - 0 56 - 0 - 0 - 0 57 - 0 - 0 - 0 58 - 0 - 0 - 0 59 - 0 - 0 - 0 60 - 0 - 0 - 0 61 - 0 - 0 - 0 62 - 0 - 0 - 0 63 - 0 - 0 - 0 64 - 30 - 30 - 30 65 - 15 - 15 - 15 66 - 7 - 7 - 7 67 - 3 - 3 - 3 68 - 1 - 1 - 1 69 - 0 - 0 - 0 70 - 0 - 0 - 0
|
 |
Barry Gaunt
Ranch Hand
Joined: Aug 03, 2002
Posts: 7729
|
|
The right hand argument of a shift operator is always taken modulo the number of bits (32 or 64) in the lefthand operand. Notice too that the short (16 bit) lefthand argument is promoted to an int (32-bit). -Barry
|
Ask a Meaningful Question and HowToAskQuestionsOnJavaRanch
Getting someone to think and try something out is much more useful than just telling them the answer.
|
 |
 |
|
|
subject: Strange behaviour of bit shifting
|
|
|