I am learning Bitwise Shift operators, and my question is (Pl see below commented lines in the Program)
Thanks
public class Bitwise {
int i =1;
int j = 1;
public static void main(String args[]) {
Bitwise obj = new Bitwise();
Bitwise obj1 = new Bitwise();
System.out.println(obj.i <<= 31);
//Here I am expecting a value of 2 power 31 but i am getting a negative value
System.out.println(obj.i >>= 31);
//Here I am expecting a value of 1, but I am getting value = -1.
System.out.println(obj.i >>= 1);
//here i am expecting value = 0.5 or 0 since it is integer type but i am getting value of -1.
System.out.println(obj1.j >> 31);
//Here i am expecting a value of 2 power-31 value but i am getting value 0
System.out.println(obj1.j >>= 31);
//Here i am expecting a value of 2 power -62 which is out of range for integer type,but iam getting value of 0.
}
}
Thanks
public class Bitwise {
int i =1;
int j = 1;
public static void main(String args[]) {
Bitwise obj = new Bitwise();
Bitwise obj1 = new Bitwise();
System.out.println(obj.i <<= 31);
//Here I am expecting a value of 2 power 31 but i am getting a negative value
System.out.println(obj.i >>= 31);
//Here I am expecting a value of 1, but I am getting value = -1.
System.out.println(obj.i >>= 1);
//here i am expecting value = 0.5 or 0 since it is integer type but i am getting value of -1.
System.out.println(obj1.j >> 31);
//Here i am expecting a value of 2 power-31 value but i am getting value 0
System.out.println(obj1.j >>= 31);
//Here i am expecting a value of 2 power -62 which is out of range for integer type,but iam getting value of 0.
}
}